0

我想在我的程序中调用一个线程,该线程不断监视键盘,如果按下某个键,然后告诉我(system.out)。

问题是 KeyListener 接口必须具有焦点才能返回 keystate。 http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

是否有不同的方法来确定键盘上的按键状态?

我的目标是查看用户是否按下了 ctrl+n,如果是,则将系统剪贴板文本更新为某些内容。

代码:

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;
    }
}
4

1 回答 1

0

没有Java Native Interface. 您将需要 OS API 级别的键盘挂钩。您可以重复使用许多可用的解决方案。看看这个就是一个这样的例子。

于 2013-01-22T18:37:57.007 回答