初学swt 遇到几个问题 请教高人

good_sun 2006-01-07 09:02:29
比如 我创建一个窗体类
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();

结果是只出现了一个窗口 当关掉这个窗口时 会出现错误!
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
glorywine 2006-01-08
  • 打赏
  • 举报
回复
在你的show()方法中有display.dispose()
所以当你关闭一个的时候
display自然就被释放了!
elfer 2006-01-08
  • 打赏
  • 举报
回复
楼上正解
我好像记得有个shell(Shell shell)的构造方法,可以一试
catchbug 2006-01-07
  • 打赏
  • 举报
回复
应该是你在关闭一窗口后也公共的shell也给释放了。
good_sun 2006-01-07
  • 打赏
  • 举报
回复
异常信息
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)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧