私のテーブルビュー:
TableView<Person> = new TableView<Person>();
しかし、人は次のようなものです:
class Person {
String firstName;
public getFirstName() {return firstName;}
}
つまり、新しい javafx スタイルのプロパティがありません。これは、私が使用するライブラリによってインスタンス化された既存のクラスです。
次のコードで列を作成します。
TableColumn columnFirstName = new TableColumn("First Name");
columnCodfis.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, String>,ObservableValue<String>>(){
@Override
public ObservableValue<String> call(CellDataFeatures<Person, String> arg) {
if (arg.getValue()==null) return null;
return new ReadOnlyStringWrapper(arg.getValue().firstName);
}
});
それはかなり面倒ですが、うまくいきます。
私の質問は次のとおりです。
- Bean は変更イベントを発生させることができないため、ObservableValue を返すことは無意味です。したがって、ObservableValue のオーバーヘッドをすべて回避したいのですが、どうすればよいですか?
- javabean 自体はイベントを発生させないため、fireCellUpdate などの昔ながらの resfresh イベントが必要です。そのような方法ですか?