我有一個菜單項「rename」,其中F2設置爲加速器。事實上,當菜單顯示時,在「重命名」旁邊有一個小小的「F2」指示。擺動:將功能鍵(F2)設置爲加速器
不幸的是,這是行不通的。這個加速器不會觸發任何響應。當我將加速器更改爲CTRL + F2時 - 它可以工作。
看來我應該使用InpoutMpa/ActionMap。問題在於,我希望這可以在應用程序中的任何地方工作,所以我試圖將它與頂層JFrame關聯起來。但是,JFrame沒有getInputMap()方法。
丟失。
[新增]
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
JMenuItem mi = new JMenuItem("Rename");
mi.setAccelerator(ks);
mi.addActionListener(action);
請告訴我們編碼用於設置加速器! – 2010-01-07 10:02:06
難道你的操作系統/窗口管理器「消耗」了按鍵,所以它實際上永遠不會到達你的Swing應用程序(例如,因爲F2被映射到特殊的東西,而Ctrl-F2沒有)? – netzwerg 2010-01-07 15:47:07