java - Java Swing 中框架、窗口和组件之间的通信

标签 java swing

我有一个带有 JPanel 的主应用程序窗口 (JFrame)。在 JPanel 上我有一些按钮。单击按钮之一后,我创建 JDialog 窗口,用户可以在其中选择两个选项:“执行”或“取消”。单击“执行”后,对话框将关闭,然后我创建某种带有进度栏的进度窗口(另一个 JDialog)。在进度窗口中,我执行了长期任务的 Swingworker。任务完成后,我显示消息对话框(JOptionPane.showOptionDialog),其中包含有关任务结果的信息(“成功”或“失败”)。此任务的结果确定主应用程序窗口的状态(我更改按钮上的标签,例如“登录”/“注销”)。如何将这个 swingworker 的结果(在方法 did() 中)“发送”到主应用程序窗口,以刷新主应用程序窗口的状态(更改按钮的标签)?我是否需要某种 Controller ,也许是监听器或仅引用主应用程序窗口?

提前谢谢你,西辛

最佳答案

将主窗口的引用沿着构造函数堆栈传递给您想要通知它的任何对象,然后向主窗口添加一个方法以接收此类通知。

例如,在主窗口 JFrame 中:

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

然后在对话框构造函数中保存对主窗口的引用,任务完成后,调用 mainWindow.taskComplete(true/false)

关于java - Java Swing 中框架、窗口和组件之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328928/

相关文章:

java - 处理两个 JOptionPane showInputDialog 中的 java 取消按钮

java - 为什么我的文本颜色不再变为白色?

java - 是否需要关闭由本地 String 变量的字节构建的 Java ByteArrayInputStream?

java - http转换为https进入无限循环

java - Android onResume 有时会显示黑屏,有时它不会检测到用户交互

java - 如何通过 Main - NullpointerException 错误更改进度条的值

java - 将图标从 jbutton move 到 jbutton

java - 匹配开头和结尾的正则表达式

java - 在 JTextPane 中选择嵌入项

java - 最小化时防止窗口重绘