我想在我的程序中调用一个不断观察键盘的线程,如果某个键被按下则告诉我(system.out)。
问题是KeyListener接口必须具有焦点才能返回keystate。 http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html
有没有不同的方法来确定键盘上键的状态?
我的目的是看到用户按下了ctrl + n,如果是,则将系统剪贴板文本更新为某些内容。
CODE:
class KeyboardWatcher extends Thread
{
boolean flag = false;
public void run()
{
while(!flag)
{
if (shift & n are pressed)
{
StringSelection stringSelection = new StringSelection("Clip Text");
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);
flag = true;
}
}
return;
}
}
答案 0 :(得分:0)
如果没有Java Native Interface
,这是不可能的。您将需要OS API级别的键盘钩子。您可以重复使用许多可用的解决方案。请看this这样的例子。