<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    好好生活,努力工作,天天向上!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

     在SWT 3.3中彈出的對話框比如確認(rèn)對話框,可以通過Tab鍵在對話框按鈕之間來回選擇,但是無法通過鍵盤方向鍵來選擇,這就讓W(xué)indows的愛好者很不習(xí)慣,其實我自己使用起來也不習(xí)慣。

      其實讓SWT的對話框支持方向鍵選擇有好幾種方案

      A方案:將平臺遷移到Eclipse 3.4+,這個方法在SWT 3.4+中解決了

      B方案:可以自己實現(xiàn)這個功能!

      我們可以繼承 org.eclipse.jface.dialogs.MessageDialog  這個類,比如就叫MessageDialog2,然后重寫父類中的 createButtonsForButtonBar(Composite parent)  方法,比如可以參考我的實現(xiàn)方法:

     
    protected void createButtonsForButtonBar(Composite parent) {
        
    super.createButtonsForButtonBar(parent);
        
    int columns = ((GridLayout) parent.getLayout()).numColumns;
        
    if(columns < 2)
          
    return;
        
    for (int i = 0; i < columns; i++) {
          Button button 
    = getButton(i);
          
    int index = (i + 1 < columns ? i + 1 : i-1);
          
    final Button otherButton = getButton(index);
          button.addKeyListener(
    new KeyAdapter() {
            
    public void keyPressed(KeyEvent e) {
              
    if (e.keyCode == SWT.ARROW_RIGHT || e.keyCode == SWT.ARROW_LEFT) {
                otherButton.setFocus();
              }
            }
          });
        }
      }

       然后在MessageDialog2方法重寫 openQuestion(Shell parent, String title, String message) 方法,

    參考實現(xiàn):    

     public static boolean openQuestion(Shell parent, String title, String message, boolean defaultTrue) {
        MessageDialog2 dialog 
    = new MessageDialog2(UIUtil.getActiveShell(), title, null, message, QUESTION, new String[] {
            IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }, defaultTrue 
    ? 0 : 1);
        
    return dialog.open() == 0;
      }

    上面方法的defaultTrue是指焦點是否默認(rèn)在"確認(rèn)"按鈕上面。

    使用方法:

    MessageDialog2.openQuestion(getShell(),”確認(rèn)操作”,”是否要執(zhí)行XX操作?”,false);
     
      默認(rèn)焦點為”否”按鈕上,當(dāng)然,你也可以使用鍵盤方向鍵選擇"是"按鈕
    posted on 2009-12-09 08:10 VWPOLO 閱讀(1663) 評論(2)  編輯  收藏 所屬分類: SWT JFace

    Feedback

    # re: SWT對話框系列:讓對話框支撐方向鍵選擇 2009-12-09 10:26 20G高壓鍋爐管
    謝謝博主分享  回復(fù)  更多評論
      

    # re: SWT對話框系列:讓對話框支撐方向鍵選擇 2009-12-10 10:48 淘寶網(wǎng)首頁
    卡是健康當(dāng)今世界  回復(fù)  更多評論
      

    主站蜘蛛池模板: 国产成人毛片亚洲精品| 亚洲1234区乱码| 1000部夫妻午夜免费| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 亚洲系列国产精品制服丝袜第| 69堂人成无码免费视频果冻传媒| 亚洲av无码成人精品区一本二本 | 一个人免费观看视频www| 看Aⅴ免费毛片手机播放| 亚洲成a人片在线观看中文动漫| 18禁无遮挡无码网站免费| 久久精品成人免费观看97| 免费无码专区毛片高潮喷水| 国产AⅤ无码专区亚洲AV| 国产92成人精品视频免费| 男女污污污超污视频免费在线看| 亚洲高清视频在线观看| 四虎影库久免费视频| 99re6在线视频精品免费下载| 久久久久亚洲AV无码去区首| 色婷婷六月亚洲婷婷丁香| 免费a在线观看播放| 亚欧免费视频一区二区三区| 国产高清视频免费在线观看| 亚洲精品第一综合99久久| 亚洲AV无码一区二区三区DV| 国产成人免费手机在线观看视频| 6080午夜一级毛片免费看6080夜福利 | 国产成人va亚洲电影| 亚洲欧洲日本精品| 亚洲精品无码不卡在线播HE| 国产免费观看视频| 国产在线观看片a免费观看| 国产一区二区三区免费观在线| 亚洲AV无码专区在线电影成人| 中文字幕亚洲色图| 国产精品亚洲成在人线| 亚洲精品人成无码中文毛片| 免费无码一区二区三区蜜桃大| 18禁黄网站禁片免费观看不卡| 大妹子影视剧在线观看全集免费 |