Java的SWT打开多个窗口,

问题描述 投票:0回答:2

我有一个Java的SWT小部件构建一个GUI,我想有多个窗口。从我的主要Shell,我使用它创建一个新的Shell是其父母。在新的窗口,我有ButtonsLabels并更新Labels文本。出于某种原因,将创建一个新的第二个窗口,我返回到第一个窗口时,第二个标签被更新,而不是当前窗口。我打开新窗口的方法是:

NewWindow newWindow = new NewWindow(mainShell, 1, 2);
newWindow.open();

NewWindow类是:

public class NewWindow {
    Shell newShell;

    public NewWindow(Shell mainShell, int first, int second) {
        newShell = new Shell(mainShell, SWT.CLOSE | SWT.TITLE | SWT.MIN);
        newShell.setSize(629, 557);
        newShell.setText("New Window");
        newShell.setBackgroundMode(SWT.INHERIT_FORCE);
    }

    public void open() {
        newShell.open();
    }

    public void close() {
        newShell.setVisible(false);
    }

}

在传递的参数被用来定义在每个窗口是用于窗户的按钮和控制不同的参数。我必须失去或搞乱的东西。在Java SWT Refresh Multiple Shells From Button答案看起来像是我可能需要实现,但我使用它有一个问题。我应该如何解决这个问题?

java swt
2个回答
0
投票

我没有正确理解你的问题,但我认为当你打开第二个窗口,第一个窗口是越来越没有在第二个窗口中的变化进行更新。如果这是你的问题,然后。试着改变你的代码中的“开放式”,如下所示。这使得在实时状态下,第二外壳和控制不会去第一壳直到您关闭它。

   public void open() {

      newShell.open();
       while (!newShell.isDisposed()) {
             if (!display.readAndDispatch()) {
                 display.sleep();
             }
         }
    }

0
投票

不要试图打开窗户多次,而尝试的“向导”的框架SWT的概念。随着“向导”,您可以从页面导航到另一个页面,以及。

© www.soinside.com 2019 - 2024. All rights reserved.