我正在开发一个GUI,我有一个例程,当事情发生变化时更新显示:
void update() {
if (needsUpdating) {
// ...
needsUpdating = false;
}
}
我试图避免“经常”调用update() - 即,如果连续设置了许多属性,我宁愿只调用update()一次。
是否可以在每个用户输入事件后调用update() - 键/鼠标/等?我可以手动执行此操作,但我有很多事件处理程序,我知道我会忘记 - Java可以为我做这个吗?
答案 0 :(得分:1)
http://tips4java.wordpress.com/2009/08/30/global-event-listeners/
真正的问题似乎是你的应用程序设计:
我可以手动完成,但我有 这么多的事件处理程序,我知道我会 忘记
尝试将建模那些“很多”分成不同的部分,并清楚地定义哪个部分需要在哪个时间触发更新。实际上,一旦你超越了最简单的应用程序,无论实际的聆听实现如何,都无法绕过这样的模型。首先,请参阅f.i。
答案 1 :(得分:0)
您可以通过继承EventQueue来使用自己的事件队列。随着它控制所有事件,并在您需要时进行更新。请参阅How to replace the AWT EventQueue with own implementation。
但是我不明白你的用例:swing为所有事件做了gui更新,你为什么要自己做?