`
vwpolo
  • 浏览: 194771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

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

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

<!--endfragment-->

 
  默认焦点为”否”按钮上,当然,你也可以使用键盘方向键选择"是"按钮

0
0
分享到:
评论

相关推荐

    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