このようにして列を作成することはできません。 TableView
コンストラクタはパラメータとしてObservableList
をとりますが、テーブル値、つまりあなたの行を見つけることを期待しています。
各テーブルがデータモデルに多かれ少なかれ結合されているため、テーブルにアイテムを追加する一般的な方法はありません。表示したいクラスがPerson
であるとします。
public class Person {
private String name;
private String surname;
public Person(String name, String surname) {
this.name = name;
this.surname = surname;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
}
これを行うには、テーブルとその2つの列を作成する必要があります。 PropertyValueFactory
はオブジェクトから必要なデータをフェッチしますが、フィールドには標準の命名規則(getName()
、getSurname()
など)に従ったアクセサーメソッドがあることを確認する必要があります。それ以外の場合は動作しません。
TableView tab = new TableView();
TableColumn nameColumn = new TableColumn("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn surnameColumn = new TableColumn("Surname");
surnameColumn.setCellValueFactory(new PropertyValueFactory<>("surname"));
tab.getColumns().addAll(nameColumn, surnameColumn);
は、今あなたがしなければならないすべてはあなたのPerson
オブジェクトを作成し、テーブルの項目に追加することです。
Person person = new Person("John", "Doe");
tab.getItems().add(person);
出典
2016-09-07 11:10:04
Dth
'Table1.getItems()'は、行を追加できる場所です。 – assylias
'TableView'を' TableView'カラムとして使うことはできません。 – fabian