Beansクラスからプロパティの更新をGUI側に通知する場合、AWT EDT(Event Dispatch Thread)でない場合には注意が必要です。
以下のクラスを使ってバウンドプロパティを実装すれば、非EDTから通知しようとしたときに、EDTに載せ替えて通知してくれます。
- javax.swing.event.SwingPropertyChangeSupport(JDK標準)
- org.jdesktop.application.AbstractBean (JSR-296)
今まで、java.beans.PropertyChangeSupportを使っていて、SwingUtilities.invokeLaterメソッドでスレッドの載せ替えをしていましたが、手間が少し減ります。