java - 在不处理显示器(父级)的情况下处理外壳

标签 java swt

我在使用 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/

相关文章:

java - 在初始化静态变量之前执行一些事情

java - 如何在 SWT 中禁用组合框中的水平滚动条

java - SWT Combo Comboviewer 字符串列表中的各种前景色

java - 一个很奇怪的问题 -> CSS file not detected .Java web application

java - Http 基本身份验证在 Spring Security 中不起作用

java - Collections.sort() 未按正确的顺序排序

java - 如何用 Java 编写正确的微基准测试?

java - Liquibase 是否可以仅用于验证 ChangeSet 已应用但不实际执行它们?

java - 将自定义图像添加到 Eclipse SWT

java - 在 SWT 浏览器中获取和设置焦点位置