HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          留言簿(5)

          隨筆分類(156)

          隨筆檔案(159)

          文章分類(1)

          相冊

          收藏夾(1)

          聯接技術類文章

          最新隨筆

          搜索

          最新評論

          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的getKeyStroke(String s)方法是方便,但如果使用不合法的語法是達不到目的的,這時你可以試試KeyStroke的其它靜態方法。

          3、AbstractButton的子類的快捷鍵用setMnemonic方法來設置只能有Alt+指定的鍵。



          </script>

          posted on 2008-03-07 13:38 helloworld2008 閱讀(1104) 評論(1)  編輯  收藏 所屬分類: java

          評論

          # re: Java快捷鍵制作(轉 http://www.17zixue8.com/htm/biancheng/java/JavaSkill/0001.htm ) 2010-12-26 12:31 KLF HIJ
          BU JASF

            回復  更多評論
            

          主站蜘蛛池模板: 郧西县| 巢湖市| 建湖县| 东宁县| 横峰县| 诏安县| 东辽县| 武宣县| 长汀县| 永顺县| 都兰县| 晋江市| 淄博市| 武夷山市| 株洲市| 惠州市| 枣庄市| 乐陵市| 汝南县| 天门市| 古田县| 司法| 黎平县| 鲁甸县| 浦北县| 西乌珠穆沁旗| 迁西县| 商南县| 霍邱县| 隆子县| 恩施市| 唐海县| 陆河县| 长白| 白朗县| 汾西县| 扬州市| 佛冈县| 革吉县| 类乌齐县| 东乡|