【发布时间】:2010-12-23 04:06:22
【问题描述】:
在“严肃”的 Java GUI 应用程序中,许多 GUI 元素背后都有模型:例如,DocumentModel 支持JEditorPane,或者ListModel 支持JList。
我们总是被告知不要从 Swing 工作线程之外进行 GUI 更改,并给予 SwingUtilities.invoke...() 以解决该问题。好吧,我可以忍受!当直接更改 GUI 组件的属性时,这当然是必要的(并且效果很好)。
理想情况下,我的大部分 GUI 可见更改将针对模型,而不是针对 JComponents。但是因为它们是 GUI 可见的,所以它们是否“算”为 GUI 更改? IE。更改事件和侦听器是否提供了必要的解耦,或者模型更改是否也需要包含在 invoke...() 中?
可能是 Swing 专业人士的老帽子,但我找不到任何明确说明这种或另一种方式的参考资料。
【问题讨论】:
标签: java user-interface swing concurrency