我在使用 SWT 库的 Java 项目中遇到问题。这是我第一次尝试使用 SWT,所以请不要向我扔石头。
环境:Eclipse - Juno
类和函数:
1º Client -> “main”在哪里。创建“GUI_Creator”类(我的)的对象。
2º GUI_Creator -> 有 2 个函数,以便“设计”我的表单。
2.1 -> MakeLogIn -> Void 方法,将我需要的控件添加到我给他作为参数的 Shell 中。我使用它来设计我向用户显示的第一个表单。
此函数还将此 shell 按钮的“单击”事件与 GUI_Creator 类的第二个函数关联起来,该函数创建一个新的 one shell。然后,这个 shell 将打开,第一个 shell 将被关闭。
2.2 -> MakeClient -> 这个函数返回一个 shell 变量。对我来说,这会返回我程序的第二个 shell,即使有设计等。
问题:
我在“main”的末尾使用这段代码:
while (!Conexion.isDisposed())
{
if (!ourDisplay.readAndDispatch())
ourDisplay.sleep();
}
ourDisplay.dispose();
如果我没记错的话,当我尝试关闭我的第一个 shell,然后只打开第二个 shell 时,这段代码就是这样做的,我的程序完全关闭,因为我正在处理父显示。
但是,我不能删除这段代码,因为如果我这样做,当我运行我的程序时,它不会“等待”一个 Action ,而只是执行所有“主要”代码,然后关闭 GUI 和程序完成。
所以,我真的不知道我该怎么做才能解决这个问题。
谢谢, 比特币
最佳答案
我不确定我是否解决了你的问题,但你可以尝试:
while (!(shell1.isDisposed() && shell2.isDisposed())) {
...
}
关于java - 在不处理显示器(父级)的情况下处理外壳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586728/