编程语言
首页 > 编程语言> > java-全局禁用SWT对话框中的输入/返回键

java-全局禁用SWT对话框中的输入/返回键

作者:互联网

我创建了一个对话框类,其中填充了一些常见的小部件,例如文本,组合和树.当我按下进入或返回的那个小部件时,具有默认行为来退出此对话框(与按下默认的“确定”按钮相同)很烦人.

为了防止这种行为,我必须为每个小部件添加一个遍历侦听器以过滤遍历键:

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

标签:swt,java
来源: https://codeday.me/bug/20191210/2102763.html