簡體   English   中英

Java Swing中框架,窗口和組件之間的通信

[英]Communication between frames, windows and components in Java Swing

我有一個帶有JPanel的主應用程序窗口(JFrame)。 在JPanel上,我有一些按鈕。 單擊按鈕之一后,我創建了JDialog窗口,用戶可以在其中選擇兩個選項:“執行”或“取消”。 單擊“執行”后,對話框關閉,然后創建帶有進度條的某種進度窗口(另一個JDialog)。 在進度窗口中,我執行具有長任務的swingworker。 任務完成后,我將顯示消息對話框(JOptionPane.showOptionDialog),其中包含有關任務結果的信息(“成功”或“失敗”)。 該任務的結果確定了應用程序主窗口的狀態(我更改了按鈕上的標簽,例如“ Login” /“ Logout”)。 我如何才能將這個swingworker的結果(在done()方法中)發送到主應用程序窗口,以刷新主應用程序窗口的狀態(更改按鈕的標簽)? 我是否需要某種控制器,也許是偵聽器或僅引用主應用程序窗口?

提前謝謝您

在構造函數堆棧中傳遞對主窗口的引用到您想要通知它的任何對象,然后將方法添加到主窗口以接收此類通知。

例如,在主窗口JFrame中:

public void taskComplete(boolean succeeded) { ... }
...
JDialog dialog = new JDialog(..., this);

然后在對話框構造函數中將對引用的引用保存到主窗口,並在任務完成后調用mainWindow.taskComplete(true/false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM