列を作成し、JavaFx の文字列のリストから名前を設定するにはどうすればよいですか。JavaFxのswingxのようなメソッドはありpublic String getColumnName(int column)
ますgetColumnCount
か?
1 に答える
いいえ、JavaFXTreeTableView
のデータ モデルは、Swing でデータ モデルを管理する方法とは異なる方法で管理されます。
TreeTableView
データ モデルは、クラス内のroot
との 2 つのプロパティで表されますcolumns
。
root
ですTreeItem<T>
(T
は の各行で表されるデータ型ですTreeTableView
)。getChildren()
ツリー構造、展開状態などの子要素のメソッドを持っています。
getColumns()
ObservableList<TreeTableColumn<T,?>>
基本的に列のリストである を返します。したがって、列の数はこのリストのサイズによって決まります。列のタイトルをカプセル化TreeTableColumn
するプロパティがあります。したがって、列名は、によって返されるリストの要素のプロパティtext
によって表されます。text
getColumns()
だから、あなたの質問に答えるために、与えられた
TreeTableView<T> treeTable ;
(T
実際の型に置き換えられます)、および
List<String> columnNames ;
ツリーテーブルの列にデータを入力できます
for (String name : columnNames) {
TreeTableColumn<T,?> column = new TreeTableColumn<>(name);
treeTable.getColumns().add(column);
}
または、Java 8 スタイルを好む場合:
columnNames.stream().map(TreeTableColumn::new)
.forEach(treeTable.getColumns()::add);
ただし、ほとんどの場合、各列にセル値ファクトリを設定する必要があり、場合によっては他の方法でさらに構成する必要があることに注意してください。