我正在执行弹出错误窗口。我尝试了各种各样的东西,但它没有用。我想要做的只是关闭弹出的错误窗口,同时仍然保持原始窗口。
在我的代码中:
final Display display = Display.getDefault();
final Shell shell = new Shell(display, SWT.CLOSE | SWT.TITLE | SWT.MIN|SWT.RESIZE);
shell.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
}
});
shell.setSize(304, 195);
shell.setText("Error Occur")
现在我正试图用一个按钮绑定的代码关闭这个窗口:
Button OKbutton = new Button(shell, SWT.NONE);
OKbutton.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
shell.isDisposed();
}
});
OKbutton.setBounds(125, 123, 75, 25);
OKbutton.setText("OK");
我也尝试过,shell.close();但它没有用。但是,当我尝试display.close();它会关闭我的原始窗口和错误窗口。
答案 0 :(得分:0)
由于您没有提供实际打开弹出对话框的代码部分,我只能猜出问题所在:
两个窗口关闭的事实表明您对两者使用相同的Shell
。因此,当你关闭一个时,另一个也会关闭。
一个简单的解决方案是为弹出窗口创建一个new Shell()
,然后您可以关闭它而不会弄乱原始的Shell
。
但是,SWT和JFace都提供了弹出对话框的类。使用这些将使您的生活更轻松,并使您的应用程序外观和行为更加原生。
关于SWT和JFace对话here有一个很好的教程。本教程向您展示如何使用一组预定义的对话框(例如错误消息,文件选择器......)以及如何创建自己的对话框。