2016-07-07 73 views
0

我建立這個彈出了學習新的語言應用程序,如果用戶發現一個未知的單詞,他可以簡單地按任何鍵盤鍵(如alt + p),以便應用程序彈出並允許他插入新詞打開應用程序與鍵按

,爲了使鍵時,會聽取任何地方我編碼以下

public class IsKeyPressed extends JFrame implements KeyListener { 
public IsKeyPressed() { 
    this.setExtendedState(MAXIMIZED_BOTH); 
    this.setUndecorated(true); 
    this.setBackground(new Color(0, 0, 0, 0)); 
    this.addKeyListener(this); 
    this.setAlwaysOnTop(true); 
    this.setVisible(true); 
    while (true) { 
     this.toFront(); 
     this.requestFocus(); 
     this.repaint(); 
    } 
} 

public static void main(String[] args) { 
    new IsKeyPressed(); 
} 

@Override 
public void keyPressed(KeyEvent ke) { 

    //open the pop up application 
} 

但如果幀從任務欄 專注所以基本上不`噸它不只是做工精細工作

任何想法如何解決?謝謝!

回答

4

但如果幀從任務欄專注所以基本上不`噸工作

任何知道如何解決它只是正常工作?

不與核心Java,這是肯定的。你在問如何創建一個通用的鍵監聽器,即使應用程序沒有焦點也可以工作,這是核心Java GUI庫無法完成的,因爲這個功能需要這個功能編碼器靠近操作系統進行操作系統特定的調用,並且Java被構建爲儘可能與操作系統無關。

所以可能的解決方案包括

  • 編寫自己的OS程序用C和使用JNA
  • (我的最愛)使用JNI
  • 編寫Java OS程序Java程序齧合他們使用的OS特定的工具(如Auto-It for Windows)來捕獲按鍵並恢復您的程序,然後通過流與您的程序進行網格劃分。 ?
+0

isn't有反正周圍.. 像grapping重點框架每次它失去它.. 因爲我不能找到任何可以虎視眈眈的焦點幀 –

+1

@KareemElsayed:這將是如果可能的話,這是一個可怕的解決方案,但幸好,這是不可能的。 –

+0

所以工具不會有助於傳播我的應用程序,唯一的方法是使用C我認爲...你可以給我任何我可以搜索的東西,因爲我什麼也不知道在C –

相關問題