我创建了一个对话框类,其中填充了一些常见的小部件,例如文本,组合和树.当我按下进入或返回的那个小部件时,具有默认行为来退出此对话框(与按下默认的“确定”按钮相同)很烦人.
为了防止这种行为,我必须为每个小部件添加一个遍历侦听器以过滤遍历键:
if (SWT::TRAVERSE_RETURN == event.detail) {
event.doit = false
}
这有点烦人.有没有办法在对话框级别进行全局处理?
解决方法:
我发现在JFace对话框中,可以通过覆盖方法createButtonsForButtonBar来禁用默认的Enter键很容易.
以及最后一个参数:
createButton(parent, IDialogConstants.OK_ID,IDialogConstants.OK_LABEL,
false);
需要为假:
@Override
protected void createButtonsForButtonBar(Composite parent) {
Button button = createButton(parent, IDialogConstants.OK_ID,
IDialogConstants.OK_LABEL, false);
}