我想讓我的程序在用戶按下某個快捷方式時取消隱藏主窗口。有沒有辦法獲得全局關鍵事件,而不僅僅是焦點位於應用程序框架內時發生的事件?有沒有辦法讓鍵盤事件沒有JFrame?
2
A
回答
3
這可能會做你想做的。請注意,此代碼正在檢查Ctr-F按鍵。我使用這段代碼在應用程序中打開一個查找對話框。我很確定該應用程序必須有重點。東西至少要嘗試...
AWTEventListener listener = new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
try {
KeyEvent evt = (KeyEvent)event;
if(evt.getID() == KeyEvent.KEY_PRESSED && evt.getModifiers() == KeyEvent.CTRL_MASK && evt.getKeyCode() == KeyEvent.VK_F) {
}
}
catch(Exception e) {
e.printStackTrace();
}
}
};
Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.KEY_EVENT_MASK);
編輯:我想我明白你想要什麼。基本上當應用程序沒有焦點。如果是這樣,那麼你可能必須使用本地API(JNI)掛鉤到OS事件中,但是這會強制你到特定的操作系統...
3
This可能會有用。我不確定是否有一個適用於Windows/Linux/Mac的庫。對於Windows,您將需要一些使用本機代碼創建鍵盤掛鉤的外部庫。我不知道如何在其他操作系統上執行此操作。
相關問題
- 1. 有沒有辦法在鍵盤事件中使用e.pageX/Y?
- 2. 有沒有辦法在GWT中捕獲鍵盤事件?
- 3. 有沒有辦法讓鍵盤觸發按鈕按下?
- 4. 有沒有辦法找到是否顯示軟件鍵盤?
- 5. 有沒有辦法刪除window.open事件?
- 6. 有沒有辦法停止OnItemSaving事件?
- 7. 有沒有辦法觸發事件viewDidUnload?
- 8. 有沒有辦法改變jquery datepicker的鍵盤快捷鍵?
- 9. 有沒有辦法查看所有VIM鍵盤綁定?
- 10. 有沒有辦法在Xcode 4中擁有VIM鍵盤綁定?
- 11. ActionScript - 沒有舞臺的鍵盤事件?
- 12. JavaScript鍵盤事件沒有觸發
- 13. Sprite沒有收到鍵盤事件
- 14. Raspberry Pi上沒有SDL2鍵盤事件?
- 15. MFC:有沒有辦法沒有On_Bn_Clicked()事件的活動按鈕?
- 16. 有沒有辦法使用多個關鍵事件
- 17. 有沒有辦法讓NetBeans使用Amazon-ec2磁盤空間?
- 18. 有沒有辦法讓這個縮短?
- 19. 有沒有辦法讓GWT AutoBean下滑?
- 20. 有沒有辦法讓perfored文本?
- 21. 有沒有辦法讓一個UIView輪?
- 22. 有沒有辦法讓@ModelAttribute動態?
- 23. 有沒有辦法讓一個對象
- 24. 有沒有辦法讓Vis.js Network居中?
- 25. 有沒有辦法讓相機膠捲
- 26. 有沒有辦法讓Browserify更快?
- 27. 有沒有辦法讓Guice在Guice.createInjector
- 28. 有沒有辦法讓父母的.html()?
- 29. 有沒有辦法讓Calendar Extender限制?
- 30. 有沒有辦法讓對講發言?
傷心。我希望會有一些平臺無關的方式:( – Rogach 2011-01-05 21:20:09
請確保檢查鏈接,altanis提供下面。有一點關於(可能)爲什麼它不是在Java中的討論。關於也許OSX沒有。沒有做足夠的OSX編程來知道這是真的還是假的...... – Merky 2011-01-05 21:29:04