在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(Standard Widget Toolkit)是Java编程中用于创建图形用户界面(GUI)的一种库,它为开发者提供了丰富的控件和对话框。在SWT中,`MessageBox`是一个用于显示简单的消息对话框的类,通常用来向用户显示警告、确认...
| 方向键下 | SWT.ARROW_DOWN | | 方向键上 | SWT.ARROW_UP | | 方向键左 | SWT.ARROW_LEFT | | 方向键右 | SWT.ARROW_RIGHT | | Alt键 | SWT.ALT | | 空格键 | SWT.SPACE | *注:原文中的SWT.BS应为SWT.SPACE* | ...
它提供了丰富的组件和API,让开发者能够构建功能强大的跨平台应用。本教程主要讲解如何在Java中使用SWT实现折叠菜单的功能。 折叠菜单是一种节省屏幕空间并提供层次化导航的UI设计,它允许用户展开或折叠子菜单来...
JFace 的核心价值在于它提供了一系列的工具类和控件,这些工具类和控件可以帮助开发者快速构建常见的 UI 元素,如对话框、表格、树形结构等,大大减少了代码量和开发时间。 #### 创建JFace应用的基本步骤 1. **...
开发人员需要根据目标操作系统的版本和架构选择相应的SWT jar包,因为每个jar包都是为特定环境定制的。 "Browser"标签则明确指出了SWT的核心功能之一——浏览器功能,这是通过`org.eclipse.swt.browser.Browser`类...
在这个项目"黑客帝国炫酷动态背景登录对话框"中,开发者利用Eclipse SWT和JFace的技术,创造了一个独特的登录对话框。对话框的背景不再是静态的,而是动态的黑客帝国风格的字符雨效果,这种效果通常由快速下落的绿色...
此 repo 包含用于 Python 3 的 libccv 的 SWT 算法的包装器。它与 Linux、macOS 和 Docker 兼容。 有关更多信息,请参阅我的博文:http: 用法 from swt_python3 import swt buffer = open ( "input.jpg" , "rb" )...
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开发中实现了一个小巧的日历对话框,并将其与文本框结合使用,从而让用户可以轻松选择并输入日期。这种方法不仅提高了应用程序的可用性,还增强了用户的交互体验。在实际应用中,还...
主要讲述了Jface向导式对话框的编写及代码。能够正确的运行在Eclipse中,希望能帮有所帮助
- **ColorDialog、FontDialog等对话框组件**:用于创建颜色选择器、字体选择器等对话框。 - **FileDialog控件**:用于打开文件选择对话框。 - **PrintDialog控件**:用于打开打印设置对话框。 - **CCombo组件**:一...
4. **对话框**:SWT提供了诸如消息对话框(MessageDialog)、输入对话框(InputDialog)和文件选择对话框(FileDialog)等,学习如何创建和使用这些对话框,可以增强应用的交互性。 5. **拖放操作**:SWT支持拖放...
根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...
swt、jface对话框
SWT库包括一系列基本组件,如按钮、文本框、列表视图等,以及更复杂的元素,如树视图、表格和对话框。 2. SWT与JFace的关系: JFace是建立在SWT之上的抽象层,它简化了SWT的使用,通过提供更多的高级API和模型视图...
5. **对话框**:展示如何创建和使用各种对话框,如消息对话框(MessageDialog)、文件选择对话框(FileDialog)等。 6. **复合组件**:介绍如何组合多个SWT组件创建自定义的复合组件。 7. **SWT与JFace**:JFace是...
SWT 选择对话框 该项目为 SWT 实现了一个对话框,用户可以在其中选择多个选项之一。 它的灵感来自于提供的 DialogBox。 与其实现相反,该项目提供的对话框使用各自平台的本机小部件,并且支持键盘交互。 例子 此基本...
第4章 使用基本控件与对话框.pdf 第4章 使用基本控件与对话框.pdf eclipse插件开发笔记,使用基本控件与对话框
JFace是建立在SWT之上的一层抽象,简化了UI开发的复杂性,提供了更高级的数据绑定、对话框和视图管理功能。JFace可以和SWT一起使用,为开发者提供更加便利的编程接口。 5. SWT与Eclipse RCP: SWT是Eclipse Rich ...
JFace是建立在SWT之上的抽象层,它简化了GUI开发,提供了数据绑定、视图模型、对话框等功能。JFace的目的是使代码更简洁,减少重复工作,提升可读性和可维护性。在本教程中,JFace与SWT一起被提及,意味着我们不仅会...