2014-04-21 74 views
2

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

当我需要得到一个专栏中,我必须通过索引来得到它:

tableView.getColumns().get(i); 

,但我想通过名称来获得柱:

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

回答

6

这是很难想象的情况其中你不能只保留对你的专栏的引用,但你总是可以写一个方法,如

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

是的,我可以保持一个HashMap中的列引用,但我不知道是否有东西在API中获得他们的名字。 – ceklock

+1

不,没有在API中。我怀疑这不是一个常见的用例;在绝大多数情况下,这些列是完全静态的,所以您将拥有实际的命名引用,甚至不需要“Map”。 –

1

另一种方法获得列名或标题设置一个ID列和检索它在必要时:

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

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