<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java快捷鍵制作

      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+指定的

      鍵。

       

      button不能設置alt以外的快捷鍵,menuitem可以:
      menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,

      InputEvent.CTRL_MASK));

       

      JMenu jm = new JMenu("文件(F)");
      jm.setMnemonic('f');

       


      ActionListener   action=new   ActionListener(){  
            public   void   actionPerformed(ActionEvent   e){  
                System.out.println("^G   has   pressed.");  
            }  
        };  
        KeyStroke   ks=KeyStroke.getKeyStroke

      (KeyEvent.VK_G,InputEvent.CTRL_MASK,false);//Ctrl+G    
        InputMap   map     =   jButton4.getInputMap

      (JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);  
        map.put(ks,"key");//這個"key"可以是任意字符串,但是不能重復,就好像

      是Hashtable中的ke -value一樣,

        而下面actionmap中put進去的action就是它的value;  

        jButton4.getActionMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)

       
        .put("key",action);

       


          /**
           * 為RootPaneContainer組件添加鍵盤事件
           * @param rpc RootPaneContainer組件
           * @param action 需要執行的動作
           * @param keyName 鍵的名稱
           * @param keyCode 鍵的數字代碼
           * @param modifiers 任意修飾符的按位或組合
           */
          public static void registerKeyEvent(RootPaneContainer rpc, Action

      action, String keyName, int keyCode, int modifiers)
          {
              JRootPane rp = rpc.getRootPane();
              InputMap inputMap = rp.getInputMap

      (JComponent.WHEN_IN_FOCUSED_WINDOW);
              inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers),

      keyName);
              rp.getActionMap().put(keyName, action);
          }

              Action action = new AbstractAction()
              {
                  public void actionPerformed(ActionEvent e)
                  {
                      System.out.println("Do something...");
                  }
              };

              registerKeyEvent(jframe, action, "隨便什么都行,只要不重復",

      KeyEvent.VK_S, KeyEvent.CTRL_MASK);

       

      posted @ 2010-01-16 14:26  vipbooks  閱讀(290)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产av不卡一区二区| 九九热视频在线播放| 国产第一页浮力影院入口| 国产福利微视频一区二区| 国产中文字幕久久黄色片| 亚洲av天堂天天天堂色| 中文字幕人成无码免费视频| 白嫩少妇无套内谢视频| 激情六月丁香婷婷四房播| 亚洲国产成人综合熟女| 国产精品中文字幕综合| 国产女人在线视频| 亚洲国产精品久久电影欧美| 连云港市| 五月天丁香婷婷亚洲欧洲国产| 在线国产你懂的| 一区二区中文字幕av| 色吊丝免费av一区二区| 亚洲熟伦熟女新五十熟妇| 亚洲AV永久中文无码精品综合| 狠狠干| 国内偷自第一区二区三区| 国产区免费精品视频| 四虎国产精品永久在线| 亚洲精品美女久久久久99| 给我播放片在线观看| 国产极品精品自在线不卡| 国产va免费精品观看| 99在线视频免费观看| 国产一区二区三区精美视频| 色8久久人人97超碰香蕉987| 97久久久亚洲综合久久| 日韩精品一区二区三区人| 无码av中文字幕免费放| 青青草国产自产一区二区| 亚洲一本二区偷拍精品| 狠狠cao日日穞夜夜穞av| www国产成人免费观看视频| 亚洲av午夜成人片| 忘忧草在线社区www中国中文| 尹人香蕉久久99天天拍|