2

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;
    }
}

前もって感謝します:)

4

2 に答える 2