如果主程序中的值发生更改,如何更改 gui 上项目的颜色

Posted

技术标签:

【中文标题】如果主程序中的值发生更改,如何更改 gui 上项目的颜色【英文标题】:How do I change the colour of an item on my gui if a value in the main program changes 【发布时间】:2011-03-03 10:52:56 【问题描述】:

感谢您抽出宝贵时间尝试帮助我 - 非常感谢。

我的问题与在主 Java 程序中的值发生更改时更改 GUI 上项目的背景颜色有关。基本上我的程序正在分析外部文件并增加一个 int 变量。当变量发生变化时,我想要一个项目的颜色(目前它只是我正在试验的面板,但这可能会改变)。

我知道如何让项目改变颜色,即 item.setBackground(Color.RED);但我不知道如何在我想要的时候让它发生。在我的脑海中,我知道这与听众有关,但我所学到的关于听众的一切都涉及实际 GUI 上发生的事情,而不是程序本身。

再次感谢您的阅读,希望您能帮到您:)

【问题讨论】:

好吧,首先,您必须接受社区的回答。看看常见问题***.com/faq 【参考方案1】:

实际上,所谓的Observer pattern 并不是特定于 UI 的。如果您希望您的 gui bean 收到有关主线程更改的通知,它会很合适。如果实现不清楚,请查看this 文章。

请注意,您必须调用 SwingUtilities.invokeLater() 从主线程更新您的 GUI。

【讨论】:

【参考方案2】:

一点也不。对于 JVM,GUI 类和“主”类之间没有特别的区别。您可以在任何地方编写侦听器。看看这篇文章,对你有帮助:http://download.oracle.com/javase/tutorial/uiswing/events/index.html

【讨论】:

以上是关于如果主程序中的值发生更改,如何更改 gui 上项目的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Three.js:无法更改 dat.GUI 中的值

尝试更改 Textarea 的值(使用 Skulpt)

如何使用代码中的ng-options更改选择中的值?

如何在sqlalchemy中的值更改后触发事件

当对象中的字段发生更改时如何从 v-model 数组中删除对象

窗口/屏幕上发生任何更改时的 Qt 事件 + 屏幕截图