JavaFX - 按名称获取TableView列

时间:2014-04-21 00:30:29

标签: javafx javafx-2

有没有办法按名称从TableView获取列?

当我需要获取列时,我必须通过索引获取它:

tableView.getColumns().get(i);

但我希望按名称获取专栏:

tableView.getColumns().get("Column Name");

3 个答案:

答案 0 :(得分:8)

很难想象你不能只保留对列的引用的情况,但是你总是可以写一个类似的方法

private <T> TableColumn<T, ?> getTableColumnByName(TableView<T> tableView, String name) {
    for (TableColumn<T, ?> col : tableView.getColumns())
        if (col.getText().equals(name)) return col ;
    return null ;
}

答案 1 :(得分:1)

获取列名称或标题的另一种方法是为列设置ID并在必要时检索它:

  private String col_ID = "Customer";
  private TableColumn col = new TableColumn (col_ID);
  col.setId(col_ID);

  System.out.println(col.getId());

答案 2 :(得分:0)

从事项目并面临相同的问题

@FXML

TableColumn nameOfTableColumn;

如果传入nameofTableColumn.getText(),则将返回列的名称(在这种情况下为nameOfTableColumn)。相应地添加此代码,并在同一行上设置一个断点。进入并点击相应列名称的+栏:所显示的字段之一将为您提供该列的值,在本例中,该值将再次为“ nameOfTableColumn”。