如何用按钮关闭Java SWT窗口?

时间:2014-08-06 15:24:22

标签: java dialog swt

作为Java的新手,以及多年的iOS和.NET经验,我发现这一点非常令人困惑。我想要的东西很简单 - 我想要一个对话框(从主窗口调用),带有OK和Cancel按钮。单击“确定”后,它会执行某些操作,然后关闭对话框。单击取消时,它只是取消对话框。

但是,使用SWT shell Dialog类执行此操作并不明显。如何获得一个按钮来关闭对话框,并将执行返回到主窗口?

2 个答案:

答案 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();
        }
    }
}