在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
);
分享到:
相关推荐
功能说明: 环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc。。。
labview程序代码参考学习使用,希望对你有所帮助。
大米外贸商城系统 简称damishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换,集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,API导入产品方便对接其他系统(带json示例数据)。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer install 打开安装向导安装 http://您的域名/install 特色 1、缓存层增加时间与批量like删除 2、API产品导入方便对接其他系统 3、增加控制台命令行,命令行生成语言翻译包 4、后台一键开启自动翻译模式,支持全球133中语言,由于google代理翻译需要收费,这个功能需要付费。 5、可选购物车与ajax修改购物车产品 6、一键结算checkout 7、增加网站前台自定义路由 方便seo 更新日志 v3.9.7 集成鱼码支付接口,方便个人站长即使收款到账使用 v3.9.3 更新内容 1:增加ueditor与旧编辑器切换 2:增加可视化布局插
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频