我在SwiXml xml中定义了一个对话框,该对话框与对话框的相应bean上的属性绑定。
:
<label text="Project Files Location"/>
<textfield id="tfProjectLocation" bindWith="projectLocation"/>
<button label="Browse" action="actionBrowse"/>
:
当我从bean中更新属性的值(例如使用操作)时,UI不会使用新值进行更新。
答案 0 :(得分:2)
1)Swing是单线程的,所有更改都必须在EDT上完成(EventDispaschThread),
2)如果你想更新UI, - 如果不是EDT, - 更新BackGround任务中的凸轮 - 来自Listeners的活动(特别是来自ActionListener或Action)
a)你必须包装到invokeLater()
b)不确定,但大多数方法应该是UI / Look&amp; Feel相关,那么你必须调用SwingUtilities.updateComponentTreeUI
(Top-Level Container's Name);
答案 1 :(得分:2)
想出来。我需要将PropertyChangEvent
发送到bean上的PropertyChangeListener
。
projectLocation = fc.getSelectedFile().getPath();
PropertyChangeEvent pce = new PropertyChangeEvent(this,
"projectLocation", projectLocation, fc.getSelectedFile().getPath());
PropertyChangeListener[] p = getPropertyChangeListeners();
p[0].propertyChange(pce);