dds*_*dds 15 java clipboard swing
我想要做的是当用户在任何程序(firefox,notepad,pdfReader等)中复制文本时,我的已经运行的java应用程序将被通知并立即显示弹出窗口.
我认为为了能够做到这一点,每当系统剪贴板发生变化时都应该调用我的java应用程序.
这有可能与java,如果是这样在哪个版本?我知道我们可以访问和操作系统剪贴板内容,但我的具体问题是关于调用java应用程序.剪贴板内容更改时.
谢谢
我天真地假装它是JDIC的工作,但是interwebz告诉了我真相.所以,让我解释一下.
使用Toolkit.getSystemClipboard(),您可以访问本机系统剪贴板.与任何Java对象一样,可以监听此剪贴板.准确地说,你可以打电话Clipboard.addFlavorListener(...)来听FlavorEvents.这些是什么 ?他们是金属国王!....不,不,我完全彻底离题.让我回来吧.因此,根据文件,FlavorEvent表明了这一点
可用的DataFlavor在剪贴板(事件源)中已更改.
这可能意味着剪贴板内容已更改.但是,如果没有第一个原型,我就不会直接使用它.
import java.awt.Toolkit;
import java.awt.datatransfer.FlavorEvent;
import java.awt.datatransfer.FlavorListener;
public class Main {
public static void main(String[] args) throws Exception {
Toolkit.getDefaultToolkit().getSystemClipboard().addFlavorListener(new FlavorListener() {
@Override
public void flavorsChanged(FlavorEvent e) {
System.out.println("changed!!! " + e.getSource() + " " + e.toString());
}
});
Thread.sleep(100000L);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5491 次 |
| 最近记录: |