torutkのブログ

ソフトウェア・エンジニアのブログ

バウンドプロパティのGUIへの通知

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メソッドでスレッドの載せ替えをしていましたが、手間が少し減ります。