Tag: 事件调度

在Java中,如何在actionPerformed线程当前运行时重新绘制面板?

我有一个类(称为Class_GUI),它有一个面板上有很多按钮。 Class_GUI有一些方法可以改变按钮的文本和颜色。 我还有一个带有actionPerformed方法的程序。 调用它时,它会创建一个Class_GUI实例,并重复调用Class_GUI方法,更改按钮等。 我遇到的问题是,一旦actionPerformed方法完全完成,按钮只能正常显示,而我想在调用每个Class_GUI方法后更改它。 到目前为止,我的尝试是在每个Class_GUI方法中,我在方法结束时执行此操作: SwingUtilities.invokeLater(Refresh_GUI); 定义Refresh_GUI的位置: Runnable Refresh_GUI = new Runnable(){ public void run(){ frame.revalidate(); frame.repaint(); } };

如何在Swing中暂时禁用事件监听器?

我有一个带有模型和视图的Swing应用程序。 在视图(GUI)中有许多组件,每个组件都映射到模型对象的某些属性并显示它的值。 现在有一些UI组件会在UI中的值发生更改时自动触发某些模型属性的更新。 这需要我在UI中重新加载完整的模型。 这样我就进入了一个无限的更新循环,因为UI中的每个模型重新加载都会触发另一个模型重新加载。 我有一个标志指示加载过程,我想用它来暂时禁止监听器通知,同时从模型中设置UI字段。 所以我的问题是: 有没有办法在Swing中全局暂时禁用某些组件的侦听器而无需删除并重新附加它们?