2013-01-22 88 views
0

我想調用我的程序中的一個線程,不斷監視鍵盤,如果按下某個鍵然後告訴我(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

這也不是沒有可能Java Native Interface。您將需要在OS API級別的鍵盤掛鉤。有許多可用的解決方案可以重複使用。對於這樣一個例子,請看this

相關問題