我有一個JComboBox
,其中包含多個值。如何檢測按鍵control-option-space
在MAC中打開彈出窗口JComboBox
?Control-Option-Space鍵用於在帶有Voiceover實用程序的MAC中的JCombobox中打開Popup
1
A
回答
3
目前還不清楚您是否想要control-option-space
密鑰綁定,或者替代標準space
密鑰。無論哪種情況,您都可以使用如下所示的綁定來喚起aquaSpacePressed
操作。有關詳細信息,請參閱如何使用密鑰綁定。
combo.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,
KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK),
"aquaSpacePressed");
因爲這是Mac特有的,你可能需要使用一個謂詞像這樣:
System.getProperty("os.name").startsWith("Mac OS X")
附錄:下面的sscce用於測試場景在修訂後的問題。
附錄:由於原因不明確,啓用System Preferences > Speech > Text to Speech
搶佔了control-option-space
綁定。作爲替代,您可以綁定到標準Action
,"spacePopup"
,如以下修訂示例所示。
import java.awt.EventQueue;
import java.awt.event.KeyEvent;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
/**
* @see http://stackoverflow.com/a/13412208/230513
*/
public class ComboKeyTest extends JPanel {
public ComboKeyTest() {
JComboBox cpmbo = new JComboBox();
cpmbo.addItem("One");
cpmbo.addItem("Two");
cpmbo.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,
KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK),
"spacePopup");
this.add(cpmbo);
}
private void display() {
JFrame f = new JFrame("NewJavaGUI");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ComboKeyTest().display();
}
});
}
}
相關問題
- 1. 有條件地在jQuery中打開WordPress的Popup Maker popup
- 2. 鍵盤快捷鍵專注於Mac OS中的應用程序
- 3. JComboBox不在jTable中打開
- 4. 在mvc3中打開Popup
- 5. 從後臺應用程序中打開帶有url方案的應用程序
- 6. 使用Coffescript打開Mac應用程序
- 7. 使用rake文件在Mac應用程序中打開文檔
- 8. 沒有Mac開發人員程序的Sign Mac應用程序
- 9. Mac Appstore:通過OSX應用程序打開Mac Appstore中某個開發人員應用程序列表的URL?
- 10. 在Mac應用程序中啓動應用程序時,XIB未打開
- 11. 如何在Mac應用程序中打開文件
- 12. Bash和Mac OS X,在空間中打開應用程序N
- 13. Observer近期在Mac中打開文檔和應用程序
- 14. 如何在C#中跟蹤應用程序的打開實例
- 15. 在我的Android應用程序中打開vimeo應用程序?
- 16. 在我的應用程序中打開「消息」應用程序
- 17. 在我的應用程序中打開外部應用程序
- 18. 用於打開程序的Makefile
- 19. 在iPhone SDK 3.2中無法打開打開的應用程序
- 20. 打開帶有圖像的消息應用程序
- 21. 如何在JComboBox中打開菜單?
- 22. 如何在addPropertyChangeListener中打開JCombobox
- 23. 使用mac在python中打開文件
- 24. Popup在jquery中打開多個時間
- 25. 在bigcommerce中打開Popup一次
- 26. PopUp屏幕未打開在webview中?
- 27. FB.login popup不再適用於Safari mac嗎?
- 28. iPhone:實用程序應用程序 - 在啓動時打開Flipside
- 29. 打開應用程序與鍵按
- 30. 使用ASP.net在Mac/iOS上打開數字應用程序
您最近的[編輯](http://stackoverflow.com/posts/13410975/revisions)可能代表一個新問題;爲了測試,我在下面添加了一個[sscce](http://sscce.org/);如果您在其他地方發帖,請參考本問答。 [Ask Different](http://apple.stackexchange.com/)。 – trashgod
另請參閱本[問與答](http://apple.stackexchange.com/q/71915/20589)。 – trashgod