Java快捷鍵制作
用過VB的知道按下F5是運作窗體,用過Photoshop的知道按下Tab是隐藏所有面闆
,你的Java程式也想有這個功能麼?那麼希望這篇文章對您有所幫助。
子菜單類JMenuItem有一個方法不知道你注意過沒有:setAccelerator。
打開幫助檔案對這個方法的描述是: 設定組合鍵,它能直接調用菜單項的操作
偵聽器而不必顯示菜單的層次結構。是以用這個方法就能制作我們所要的快捷鍵
了。
幫助檔案告訴我們,傳給setAccelerator方法所要的是一個KeyStroke,下面來
說說這個類:
KeyStoke在Javax.swing包下,他的作用将我們要的鍵"捆"起來,再傳給上面所
說的setAccelerator之類的方法來使用,KeyStoke類提供了幾個"捆"鍵的靜态重
載方法,下面說幾個例子,你們自己去試試吧:
F5: KeyStroke.getKeyStroke(KeyEvent.F5, 0);
Ctrl+Q: KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK);
a:KeyStroke. getKeyStroke('a');
Alt+Shift+C:getKeyStroke(KeyEvent.VK_C, InputEvent.ALT_MASK |
InputEvent.SHIFT_MASK, true);
當然,如果你不想引入一些如KeyEvent或InputEvent類的話,那麼你就可以用
KeyStroke.getKeyStroke(String s)方法來簡化他:
F5:KeyStroke.getKeyStroke("F5");
Ctrl+Q:KeyStroke.getKeyStroke("control Q ");
a:KeyStroke.getKeyStroke( "typed a" );
Alt+Shift+C:getKeyStroke("alt shift released X ");
如為子菜單"打開"(名為:meuOpen)加入快捷鍵Ctrl+O:
meuOpen.setAccelerator(KeyStroke.getKeyStroke("control O"));
上面說的是子菜單的快捷鍵設定,現在說下其它控件的快捷鍵設定:
把開幫助檔案,進入 javax.swing.AbstractButton ,你可以找到setMnemonic
(int mnemonic),這就是AbstractButton子類設定快捷鍵的方法了,如一個按鈕
btn,設定快捷鍵為:btn.setMnemonic (KeyEvent.A),則它的快捷方式為Alt+A
,它有一個修飾方法 setDisplayedMnemonicIndex (int index),作用是設定标
題的第幾個字元加個下劃線來辨別快捷鍵,如btn.setText
("Open");btn.setDisplayedMnemonicIndex(0),則btn的标題變為Open。
聰明的你們突類旁通吧,一定可以成功的。不過要注意以下幾點:
1、在使用KeyStroke的getKeyStroke(String s)方法時應該注意用法如Ctrl用
control表示,Alt用alt來表示,如果加上字母則要用大寫,但隻有一個鍵如a時
,應該用小寫:"type a"。
2、KeyStroke