如何在Eclipse RCP PreferencePage中禁用KEY-ENTER行为

时间:2013-01-29 12:10:00

标签: eclipse default rcp behavior

在我的应用程序中,我有几个首选项页面。在其中一些用户中,用户必须编辑一些项目。如果用户使用 Enter key-KEY,整个“首选项”对话框将关闭,这是因为OK按钮具有焦点。

那么如何禁用此行为?

我可以将焦点设置在页面上的任何项目上,但按 Enter 会强制关闭对话框。

2 个答案:

答案 0 :(得分:0)

扩展默认对话框并覆盖以下方法。

@Override
protected void createButtonsForButtonBar(Composite parent) {
    // Its the same as super.createButtonsForButtonBar(), but makes no default buttons by sending false.
    createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false);
    createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
}

答案 1 :(得分:0)

您可以在目标小部件上使用此代码

widget.addListener(SWT.Traverse, new Listener() {
    public void handleEvent(Event e) {
    if (e.detail == SWT.TRAVERSE_RETURN)
        e.doit = false;
    }
});