列を作成し、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によって表されます。textgetColumns()
だから、あなたの質問に答えるために、与えられた
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);
ただし、ほとんどの場合、各列にセル値ファクトリを設定する必要があり、場合によっては他の方法でさらに構成する必要があることに注意してください。