比如 我创建一个窗体类
public class myfrm{
private Display display = Display.getDefault();
public void show(){
Shell sShell = new Shell();
sShell.setSize(new Point(309, 243));
sShell.open(); while (!sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
} ......
}我想同时显示出两个一样的窗口 然后在main方法中myfrm frm1 = new myfrm();
myfrm frm2 = new myfrm();
frm1.show();
frm2.show();结果是只出现了一个窗口 当关掉这个窗口时 会出现错误!
public class myfrm{
private Display display = Display.getDefault();
public void show(){
Shell sShell = new Shell();
sShell.setSize(new Point(309, 243));
sShell.open(); while (!sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
} ......
}我想同时显示出两个一样的窗口 然后在main方法中myfrm frm1 = new myfrm();
myfrm frm2 = new myfrm();
frm1.show();
frm2.show();结果是只出现了一个窗口 当关掉这个窗口时 会出现错误!
Exception in thread "main" org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3283)
at org.eclipse.swt.SWT.error(SWT.java:3206)
at org.eclipse.swt.SWT.error(SWT.java:3177)
at org.eclipse.swt.widgets.Display.error(Display.java:974)
at org.eclipse.swt.widgets.Display.checkDevice(Display.java:633)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2897)
at main.text_frm.show(text_frm.java:39)
at main.main.main(main.java:14)
所以当你关闭一个的时候
display自然就被释放了!
我好像记得有个shell(Shell shell)的构造方法,可以一试