`
snoopy7713
  • 浏览: 1152386 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

SWT对话框系列:让对话框支撑方向键选择

    博客分类:
  • SWT
阅读更多

在SWT 3.3中弹出的对话框比如确认对话框,可以通过Tab键在对话框按钮之间来回选择,但是无法通过键盘方向键来选择,这就让Windows的爱好者很不习惯,其实我自己使用起来也不习惯。 <!--endfragment-->   其实让SWT的对话框支持方向键选择有好几种方案

 

<!--endfragment-->

  A方案:将平台迁移到Eclipse 3.4+,这个方法在SWT 3.4+中解决了

  B方案:可以自己实现这个功能!

  我们可以继承 org.eclipse.jface.dialogs.MessageDialog  这个类,比如就叫MessageDialog2,然后重写父类中的 createButtonsForButtonBar(Composite parent)  方法,比如可以参考我的实现方法:

 

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) 方法,

参考实现:      

  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 ;
  }

<!--endfragment-->

上面方法的defaultTrue是指焦点是否默认在"确认"按钮上面。
<!--endfragment--><!--endfragment--><!--endfragment--><!--endfragment-->

使用方法:

<!--endfragment-->

MessageDialog2.openQuestion(getShell(),”确认操作”,”是否要执行XX操作 ? ”, false );
分享到:
评论

相关推荐

    SWT 弹出对话框 可以选择的图标种类

    SWT(Standard Widget Toolkit)是Java编程中用于创建图形用户界面(GUI)的一种库,它为开发者提供了丰富的控件和对话框。在SWT中,`MessageBox`是一个用于显示简单的消息对话框的类,通常用来向用户显示警告、确认...

    SWT JFace 按键、事件、监听

    | 方向键下 | SWT.ARROW_DOWN | | 方向键上 | SWT.ARROW_UP | | 方向键左 | SWT.ARROW_LEFT | | 方向键右 | SWT.ARROW_RIGHT | | Alt键 | SWT.ALT | | 空格键 | SWT.SPACE | *注:原文中的SWT.BS应为SWT.SPACE* | ...

    swt...zhedie.rar_SWT_site:www.pudn.com_折叠菜单

    它提供了丰富的组件和API,让开发者能够构建功能强大的跨平台应用。本教程主要讲解如何在Java中使用SWT实现折叠菜单的功能。 折叠菜单是一种节省屏幕空间并提供层次化导航的UI设计,它允许用户展开或折叠子菜单来...

    SWT/JFace

    JFace 的核心价值在于它提供了一系列的工具类和控件,这些工具类和控件可以帮助开发者快速构建常见的 UI 元素,如对话框、表格、树形结构等,大大减少了代码量和开发时间。 #### 创建JFace应用的基本步骤 1. **...

    org.eclipse.swt相关所有jar包,

    开发人员需要根据目标操作系统的版本和架构选择相应的SWT jar包,因为每个jar包都是为特定环境定制的。 "Browser"标签则明确指出了SWT的核心功能之一——浏览器功能,这是通过`org.eclipse.swt.browser.Browser`类...

    Eclipse SWT 黑客帝国炫酷动态背景登录对话框

    在这个项目"黑客帝国炫酷动态背景登录对话框"中,开发者利用Eclipse SWT和JFace的技术,创造了一个独特的登录对话框。对话框的背景不再是静态的,而是动态的黑客帝国风格的字符雨效果,这种效果通常由快速下落的绿色...

    swt-python:在Python中使用的快速笔划宽度变换(SWT)算法

    此 repo 包含用于 Python 3 的 libccv 的 SWT 算法的包装器。它与 Linux、macOS 和 Docker 兼容。 有关更多信息,请参阅我的博文:http: 用法 from swt_python3 import swt buffer = open ( "input.jpg" , "rb" )...

    org.eclipse.swt.win32

    org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....

    在swt开发中实现的一个小小的日历对话框

    通过以上步骤,我们成功地在SWT开发中实现了一个小巧的日历对话框,并将其与文本框结合使用,从而让用户可以轻松选择并输入日期。这种方法不仅提高了应用程序的可用性,还增强了用户的交互体验。在实际应用中,还...

    JAVA.SWTJFace JFace篇之向导式对话框.wps

    主要讲述了Jface向导式对话框的编写及代码。能够正确的运行在Eclipse中,希望能帮有所帮助

    Eclipse SWT 开发参考

    - **ColorDialog、FontDialog等对话框组件**:用于创建颜色选择器、字体选择器等对话框。 - **FileDialog控件**:用于打开文件选择对话框。 - **PrintDialog控件**:用于打开打印设置对话框。 - **CCombo组件**:一...

    swt高级密笈源码swt

    4. **对话框**:SWT提供了诸如消息对话框(MessageDialog)、输入对话框(InputDialog)和文件选择对话框(FileDialog)等,学习如何创建和使用这些对话框,可以增强应用的交互性。 5. **拖放操作**:SWT支持拖放...

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    jface对话框

    swt、jface对话框

    JAVA swt 开发第二部分

    SWT库包括一系列基本组件,如按钮、文本框、列表视图等,以及更复杂的元素,如树视图、表格和对话框。 2. SWT与JFace的关系: JFace是建立在SWT之上的抽象层,它简化了SWT的使用,通过提供更多的高级API和模型视图...

    SWT-Tutorial:Java - Eclipse IDE 4.2.2

    5. **对话框**:展示如何创建和使用各种对话框,如消息对话框(MessageDialog)、文件选择对话框(FileDialog)等。 6. **复合组件**:介绍如何组合多个SWT组件创建自定义的复合组件。 7. **SWT与JFace**:JFace是...

    swtchoices:显示 SWT 多个选项的对话框

    SWT 选择对话框 该项目为 SWT 实现了一个对话框,用户可以在其中选择多个选项之一。 它的灵感来自于提供的 DialogBox。 与其实现相反,该项目提供的对话框使用各自平台的本机小部件,并且支持键盘交互。 例子 此基本...

    swt 使用基本控件与对话框

    第4章 使用基本控件与对话框.pdf 第4章 使用基本控件与对话框.pdf eclipse插件开发笔记,使用基本控件与对话框

    SWT --JAR 包

    JFace是建立在SWT之上的一层抽象,简化了UI开发的复杂性,提供了更高级的数据绑定、对话框和视图管理功能。JFace可以和SWT一起使用,为开发者提供更加便利的编程接口。 5. SWT与Eclipse RCP: SWT是Eclipse Rich ...

    SWT开发教程1

    JFace是建立在SWT之上的抽象层,它简化了GUI开发,提供了数据绑定、视图模型、对话框等功能。JFace的目的是使代码更简洁,减少重复工作,提升可读性和可维护性。在本教程中,JFace与SWT一起被提及,意味着我们不仅会...

Global site tag (gtag.js) - Google Analytics