作为Java的新手,以及多年的iOS和.NET经验,我发现这一点非常令人困惑。我想要的东西很简单 - 我想要一个对话框(从主窗口调用),带有OK和Cancel按钮。单击“确定”后,它会执行某些操作,然后关闭对话框。单击取消时,它只是取消对话框。
但是,使用SWT shell Dialog类执行此操作并不明显。如何获得一个按钮来关闭对话框,并将执行返回到主窗口?
答案 0 :(得分:5)
使用Shell.close()
而不是dispose()
- 所以shlCheckOut.close()
。
Shell.close
发送SWT.Close
事件,然后调用dispose
。
答案 1 :(得分:4)
通过一些反复试验和大量无效的搜索,我发现在你的按钮代码中,你必须调用对话框的shell变量的.dispose()方法。例如,我的对话框是CheckOutDialog
,因此我命名了shell变量shlCheckOut
。在createContents()
方法中,我按下了按钮代码:
...
Button btnCancel = new Button(shlCheckOut, SWT.NONE);
btnCancel.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
shlCheckOut.dispose();
}
}
}