*Property()メソッドの定義を忘れてはならない(戒め)
public class MyBean { private SimpleStringProperty name; // これを追加 private SimpleIntegerProperty value; public MyBean() { name = new SimpleStringProperty(); value = new SimpleIntegerProperty(); } public SimpleStringProperty nameProperty() { return name; } // 追加したフィールドについてvalueProperty()の定義を忘れてしまう public String getName() { return name.get(); } public void setName(String name) { this.name.set(name); } // getter, setterは(定義しないと使えないので)定義してた public int getValue() { return this.value.get(); } public void setValue(int value) { this.value.set(value); }
上記のコードは一見エラーもなく動くけど、TableViewのカラムとバインドして
複数回中身を更新してたら、
「途中までは更新されてたけど、ある時点から更新されなくなった。」
諦め気味になるまで調査と試行錯誤した結果気づいた、*Property()定義し忘れ。
定義したらあっさり期待通りに動作しました。
他にタイプミスとかあると怖い。