当前位置: 首页 > news >正文

网站建设技术员/软件推广

网站建设技术员,软件推广,品牌建设主要成就,上海做网站哪家公司好工作中经常有复制的诉求,当多次复制的时候,去找之前复制的内容就比较麻烦。市面上的要不是不好用,要不是就是不免费。于是打算手搓一个记录复制记录的软件,方便快速找到之前复制内容,效果还是很不错。直接贴代码 下面是…

工作中经常有复制的诉求,当多次复制的时候,去找之前复制的内容就比较麻烦。市面上的要不是不好用,要不是就是不免费。于是打算手搓一个记录复制记录的软件,方便快速找到之前复制内容,效果还是很不错。直接贴代码
下面是完整版代码:


import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.LinkedList;
import java.util.concurrent.TimeUnit;public class ClipboardHistory extends JFrame {private static final int MAX_HISTORY = 100;private final DefaultListModel<String> listModel = new DefaultListModel<>();private final LinkedList<String> history = new LinkedList<>();private final JList<String> historyList = new JList<>(listModel);public ClipboardHistory() {setTitle("剪贴板历史记录器");setDefaultCloseOperation(EXIT_ON_CLOSE);setSize(500, 400);setLocationRelativeTo(null);JScrollPane scrollPane = new JScrollPane(historyList);JButton copyBtn = new JButton("复制到剪贴板");copyBtn.addActionListener(e -> copySelectedToClipboard());JButton deleteBtn = new JButton("删除选中内容");deleteBtn.addActionListener(e -> deleteSelectedItem());JPanel btnPanel = new JPanel();btnPanel.add(copyBtn);btnPanel.add(deleteBtn);JPanel panel = new JPanel(new BorderLayout());panel.add(scrollPane, BorderLayout.CENTER);panel.add(btnPanel, BorderLayout.SOUTH);add(panel);// 鼠标双击复制historyList.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent evt) {if (evt.getClickCount() == 2) {copySelectedToClipboard();}}});// 剪贴板监听线程new Thread(this::watchClipboard).start();}private void watchClipboard() {Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();Transferable prev = null;while (true) {try {Transferable curr = clipboard.getContents(null);if (curr != null && curr.isDataFlavorSupported(DataFlavor.stringFlavor)) {String data = (String) curr.getTransferData(DataFlavor.stringFlavor);if (!data.trim().isEmpty() && (prev == null || !data.equals(getTransferableString(prev)))) {addHistory(data);prev = curr;}}TimeUnit.MILLISECONDS.sleep(500);} catch (Exception e) {// 忽略异常}}}private String getTransferableString(Transferable t) {try {return t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)? (String) t.getTransferData(DataFlavor.stringFlavor) : null;} catch (Exception e) {return null;}}private void addHistory(String text) {SwingUtilities.invokeLater(() -> {if (history.contains(text)) {return; }// 去重history.addFirst(text);if (history.size() > MAX_HISTORY) {history.removeLast();}refreshList();});}private void refreshList() {listModel.clear();for (String s : history){ listModel.addElement(s);}}private void copySelectedToClipboard() {String selected = historyList.getSelectedValue();if (selected != null) {StringSelection sel = new StringSelection(selected);Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel, null);}}private void deleteSelectedItem() {int idx = historyList.getSelectedIndex();if (idx >= 0) {String item = listModel.getElementAt(idx);history.remove(item);refreshList();// 维持选择状态if (idx < listModel.size()) {historyList.setSelectedIndex(idx);} else if (!listModel.isEmpty()) {historyList.setSelectedIndex(listModel.size() - 1);}}}public static void main(String[] args) {SwingUtilities.invokeLater(() -> new ClipboardHistory().setVisible(true));}
}

主要功能说明:

  • 可以自动记录前100条(可以自行调整)复制时的内容,去重的。
  • 可以“删除选中内容”
  • 可以复制选择的内容

如何使用
1.创建一个Java 文件,然后直接复制上面代码,直接在idea运行就行。文件名称要和ClipboardHistory一样,当然你也可以同时修改名称。
2.打包后在classpath的目录直接执行nohup java -cp . com.example.demo.tool.ClipboardHistory > app.log 2>&1 & 这样就可以后台一直运行,直到你关机。

效果如下
在这里插入图片描述

http://www.cadmedia.cn/news/244.html

相关文章:

  • 关键词排名是由什么决定的/搜狗搜索引擎优化
  • 做建筑设计的网站推荐/头条新闻最新消息
  • b2b网站权重/做好的网站怎么优化
  • 有些网站为什么可以做资讯/免费b2b网站大全免费
  • 天河网站 建设信科网络/网站网络推广运营
  • o2o网站建设如何/今日头条网页版入口
  • 衡水seo优化/江门关键词排名优化
  • 网站一般做哪些测试/域名搜索引擎入口
  • 网站数据分析建设/想卖产品怎么推广宣传
  • 福田所有车型/网站seo搜索引擎优化怎么做
  • wordpress仿站教程百度云/网店推广运营策略
  • 大型餐饮网站建设/郑州做网站推广
  • 什么是三合一网站建设/域名在线查询
  • 北京做网站建设公司/天津seo管理平台
  • 每天干每天做网站/危机公关处理
  • 广西高端网站建设/2020十大网络热词
  • 东莞网站建设设计/交换链接是什么
  • b2b网站用织梦可以做吗/如何自己做网络推广
  • 海南省旅游专业网站发展电子商务缺乏强大的专业产业资源做后盾/seo搜索优化公司排名
  • 网上做中考题的网站/百度品牌推广
  • 网站更新和维护怎么做/网络客服
  • 优秀网站赏析/b站2020推广网站
  • 官方建设网站/可以推广的软件有哪些
  • 怎么推广平台/seo优化网页
  • 桂林北站到龙脊梯田/成都业务网络推广平台
  • 企业宣传片制作公司排名/优化网站制作方法大全
  • 电子商城网站制作公司/推广之家app下载
  • wordpress需要多少运存/石家庄网站建设seo公司
  • 局域网站建设银行信用卡/宁波百度关键词推广
  • 广州网站建设团队/seo在线教学