[英]Java SWT opening multiple windows
我有一個用Java SWT小部件構建的GUI,並且我試圖有多個窗口。 從我的主Shell
,創建一個新的Shell
作為其父對象。 在新的窗口,我有Buttons
和Labels
,並更新文本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);
}
}
傳入的參數用於在每個窗口中定義與Windows按鈕和控件不同的參數。 我一定很想念或弄亂一些東西。 Java SWT從Button刷新多個Shell的答案似乎是我可能需要實現的東西,但是使用它時遇到了問題。 我應該如何解決這個問題?
我無法正確理解您的問題,但是我認為當您打開第二個窗口時,第一個窗口正在更新,而第二個窗口沒有更改。 如果這是您的問題,那么。 嘗試按以下步驟在“打開”中更改代碼。 這將使第二個Shell處於活動狀態,並且直到您關閉它,控件才會進入第一個Shell。
public void open() {
newShell.open();
while (!newShell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
不要嘗試多次打開窗口,而應該嘗試SWT Framework中的“向導”概念。 使用“向導”,您也可以從一個頁面導航到另一個頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.