JavaFX での TableView の設定について質問がありました。まず第一に、私はjavaFXの初心者なので、私の無知を心配しています。
テーブルビューがどのように機能するかを試すために、簡単な例を作成しました。
public class Person{
private StringProperty firstName, lastName;
private IntegerProperty age;
//Left the constructor and getters out
}
コントローラの場合:
public class Controller implements Initializable {
@FXML private TableView tableView;
@FXML private TableColumn firstNameColumn, lastNameColumn, ageColumn;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
ObservableList<Person> data = FXCollections.observableArrayList();
tableView.setItems(data);
firstNameColumn.setCellFactory(new PropertyValueFactory<Person, String>("firstName"));
lastNameColumn.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));
ageColumn.setCellValueFactory(new PropertyValueFactory<Person, Integer>("age"));
data.add(new Person("Piet", "Jansen", 22));
}
}
これは問題なく動作しますが、すべての人が名前と姓を含む Name オブジェクトを持っている場合はどうなるでしょうか?
例えば:
public class Person{
private Name name;
private IntegerProperty age;
//Left the constructor and getters out
}
名前クラス:
public class Name {
private StringProperty firstName, lastName;
public Name(String firstName, String lastName) {
this.firstName = new SimpleStringProperty(firstName);
this.lastName = new SimpleStringProperty(lastName);
}
public String getFirstName() {
return firstName.get();
}
public StringProperty firstNameProperty() {
return firstName;
}
public String getLastName() {
return lastName.get();
}
public StringProperty lastNameProperty() {
return lastName;
}
}
前もって感謝します:)