2014-03-07 22 views
0

我搜索了網頁,發現有兩種方法可以將一個加速器添加到JMenuItem中。選擇使用哪一個對程序有任何可能的影響?選擇向JMenuitem添加加速器的方法?

menuItem.setAccelerator(KeyStroke.getKeyStroke("control X");); 

或者

menuItem.setAccelerator(KeyStroke.getKeyStroke('X', KeyEvent.CTRL_DOWN_MASK)); 
+2

檢查區別['getKeyStroke(String s)'](http://docs.oracle.com/javase/7/docs/api/javax/swing/KeyStroke.html#getKeyStroke(java.lang.String) )和['getKeyStroke(Character keyChar,int modifiers)'](http://docs.oracle.com/javase/7/docs/api/javax/swing/KeyStroke.html#getKeyStroke(java.lang.Character,int ))。至於我,第二是更可取的。 – alex2410

回答

2

我會用這一個:

menuItem.setAccelerator(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK); 

因爲它同時使用KeyEvent常數,你可以依靠Java映射相應的字符/鍵。作爲一種慣例,如果可用的話,我更喜歡使用常量,因爲您可以信任他們按照意圖去做。