gpt4 book ai didi

java - Mac OS X 上的剪贴板监控 | java

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:23:39 24 4
gpt4 key购买 nike

我在 Mac OS X 上从系统剪贴板获取数据时遇到问题。我想做的是听取系统剪贴板并在每次将新的 [基于文本的] 信息放入其中时打印剪贴板的内容。

问题:下面的代码在 Windows 7 和 openSUSE Linux 机器上工作得很好,但是当我尝试在 Mac OS X 上运行相同的代码时,程序无法打印剪贴板的新内容,直到应用程序获得焦点。 [在我单击停靠栏上的应用程序图标之前,不会打印任何内容...]

我的源代码:

import java.awt.Toolkit;  
import java.awt.datatransfer.*;
import java.io.IOException;

public class ClipboardListener extends Thread implements ClipboardOwner {

Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

public void run(){
Transferable selection = systemClipboard.getContents(this);
gainOwnership(selection);
}

public void gainOwnership(Transferable t){
try {this.sleep(100);}
catch (InterruptedException e) {e.printStackTrace();}
systemClipboard.setContents(t, this);
}

public void lostOwnership(Clipboard clipboard, Transferable contents) {
try {System.out.println((String) clipboard.getData(DataFlavor.stringFlavor));}
catch (UnsupportedFlavorException e) {}
catch (IOException e) {}
gainOwnership(contents);
}
}

public class myApp {

public static void main(String[] args){
ClipboardListener listener = new ClipboardListener();
listener.start();
while(true){}}

}

我错过了什么/做错了什么?

[更新]我在这里发现了类似的问题:Java thread goes to sleep when not in focus on OSX但是,使用命令“java -jar myApp.jar &”对我来说并没有解决方法。

最佳答案

关于java - Mac OS X 上的剪贴板监控 | java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10185754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com