我有一個用戶請求,添加一個加速器到子菜單(JMenu),這將允許用戶按下捷徑,並有相應的子菜單「摺疊」,顯示其包含的菜單項。如何爲JMenu子菜單設置加速器?
我不記得每個人都看過類似的東西(無論是Java或任何其他語言)。我們的應用程序是使用Swing以Java編寫的。我們有許多帶有加速器的JMenuItems,但是當我嘗試向JMenu添加加速器時,我得到以下異常:
java.lang.Error:未爲JMenu定義setAccelerator()。改用setMnemonic()。我試過使用MenuDemo!代碼來進一步試驗這一點。
這是我的嘗試:
//a submenu
menu.addSeparator();
submenu = new JMenu("A submenu");
submenu.setMnemonic(KeyEvent.VK_S);
submenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK));
的最後一行是一個由我添加的,這將導致異常。
我試過大量的谷歌搜索,但我可以找到的所有文章都是關於如何將加速器添加到JMenuItem的文章。
看起來JMenu並不支持這個本身。是否有任何解決方法來實現這種行爲?
很酷 - 老太太還有驚喜Swing :-) – kleopatra
謝謝,這解決了我的問題。這麼容易,但你必須考慮它:-) –