在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-->
默认焦点为”否”按钮上,当然,你也可以使用键盘方向键选择"是"按钮
分享到:
相关推荐
SWT的MessageBox对话框 SWT有不同类型的对话框。有些对话框具有特殊的属性。 MessageBox messageBox = new MessageBox(shell, SWT.OK|SWT.CANCEL); if (messageBox.open() == SWT.OK) { System.out.println(...
java中使用SWT折叠菜单的做法,十分好的学习资料
此 repo 包含用于 Python 3 的 libccv 的 SWT 算法的包装器。它与 Linux、macOS 和 Docker 兼容。 有关更多信息,请参阅我的博文:http: 用法 from swt_python3 import swt buffer = open ( "input.jpg" , "rb" )...
JAVA.SWT/JFace: 按键与其对应的常量表、KeyEvent事件比较、VerifyEvent事件比较
主要讲述了Jface向导式对话框的编写及代码。能够正确的运行在Eclipse中,希望能帮有所帮助
用Eclipse SWT 实现的动态背景对话框的源码,动态背景为黑客帝国字符雨效果,极为炫酷。高端大气且上档次。
swt、jface对话框
第4章 使用基本控件与对话框.pdf 第4章 使用基本控件与对话框.pdf eclipse插件开发笔记,使用基本控件与对话框
SWT 选择对话框 该项目为 SWT 实现了一个对话框,用户可以在其中选择多个选项之一。 它的灵感来自于提供的 DialogBox。 与其实现相反,该项目提供的对话框使用各自平台的本机小部件,并且支持键盘交互。 例子 此基本...
SWT examples,SWT官方例子:http://www.eclipse.org/swt/examples.php 该页面所要下载的例子 其中,swt的例子在\plugins\org.eclipse.swt.examples.source_3.7.0.v3740f.jar中
SWT-AirlineReservationSystem:软件测试项目
java SWT 对话框 table 添加 删除 修改 查看信息 menu栏操作 右键点击查看
开发实例Designer SWT JFace for Eclipse
支持功能有: 1. 跨行和跨列功能 2. 页码和页数统计 3. 边距和间距调整 4. 各边框颜色设置 5. 前景和背景颜色 6. 自适应页面大小 .........一个是SWT Report的项目包,另一个是CustomReportTest 类生成的报表
SWT 的 PlotControl PlotControl 是一个简单的 SWT 小部件,用于绘制折线图。 它包括填充和描边合成曲线、处理正负 x/y 值、缩放以适应小部件空间以及标准或 MRTG 样式图的功能。 PlotControl 在 MIT 许可下可用。...
在swt开发中实现的一个小小的日历对话框,与文本框共同使用的,可以供大家参考,
android-swt-演示演示如何使用桌面 Java 和 SWT 显示 Android 自定义绘制视图的原型这个原型包括两个项目: DrawIt - 一个非常简单的 Android 应用程序,其中包含一个自定义绘制的视图 (TestView) AndroidPaint - 一...
swt&jface英文教程 书名:The Definitive Guide to SWT and JFace by:by Robert Harris and Rob Warner
Scala SWT 构建器 DSL 该项目试图为 SWT GUI 创建 DSL。 版本 该项目正在开发中(尚未准备好使用)。 它目前支持创建大多数 SWT 小部件。 我也想加入事件处理(目前只实现了onSelect )。 安装(SBT 0.13.6+) 在 ...
官网上的 swt examples http://www.eclipse.org/swt/examples.php 已整理好,里面包含许多常用例子,如文本编辑器,文件浏览器,绘图器,组件控制器的源码等等 项目有任何问题可联系本人