我使用SWT库时遇到了Java项目的问题。这是我第一次尝试使用SWT,所以请不要向我扔石头。
环境:Eclipse - Juno
课程和职能:
1º客户 - >哪里是“主要”。创建一个“GUI_Creator”类(我的)对象。
2ºGUI_Creator - >有两个功能,以“设计”我的形式。
2.1 - > MakeLogIn - > Void方法,将我需要的控件添加到Shell中我给他作为参数。我用它来设计我向用户展示的第一个表格。
此函数还链接此shell按钮的“click”事件,以及GUI_Creator类的第二个函数,它创建一个新的shell。然后,这个shell将打开,第一个将被关闭。
2.2 - > MakeClient - >该函数返回一个shell var。对我来说,这会返回我程序的第二个shell,即使是设计等等。
问题:
我正在使用,在“主要”这段代码的末尾:
while (!Conexion.isDisposed())
{
if (!ourDisplay.readAndDispatch())
ourDisplay.sleep();
}
ourDisplay.dispose();
如果我没错,这段代码就是在我尝试关闭我的第一个shell时,然后只打开第二个shell,我的程序完全关闭,因为我正在处理父显示。
但是,我无法删除此代码,因为如果我这样做,当我运行我的程序时,它不“等待”一个动作,只是执行所有“主”代码,然后关闭GUI和节目最终确定。
所以,我真的不知道我该怎么做才能解决这个问题。
谢谢, BTC
答案 0 :(得分:1)
我不确定我的问题是否正确,但您可以尝试:
while (!(shell1.isDisposed() && shell2.isDisposed())) {
...
}