0

プログラム内で常にキーボードを監視するスレッドを呼び出したいのですが、特定のキーが押された場合は、(system.out)を教えてください。

問題は、KeyListenerインターフェイスがキーステートを返すためにフォーカスを持っている必要があることです。 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です。OSAPIレベルのキーボードフックが必要になります。再利用できるソリューションはたくさんあります。そのような例の1つとしてこれを見てください。

于 2013-01-22T18:37:57.007 に答える