javafx之TableView的TableColumn

TableColumn列 

列与Bean之间建立联系: 
setCellValueFactory();
通过cell值工厂建立与Bean的联系。它这里并不需要知道你是传了什么Bean,它只需要通过“字段名”反射去Bean里面获得值,所以Bean属性定义的名字不需要与它相同,只需要有字段名Property() 方法。 

setCellValueFactory(new PropertyValueFactory("字段名"));

 

[java]  view plain  copy
 
  1. TableColumn firstNameCol = new TableColumn("First Name");  
  2. firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName"));  


第二种设置方式

setCellValueFactory(new CallBack());

[java]  view plain  copy
 
  1. setCellValueFactory(new CallBack,ObservableValue>()  
  2. @Override  
  3.             public ObservableValue call(TableColumn.CellDataFeatures cellData) {  
  4.                  
  5.                 return new SimpleStringProperty(cellData.getValue().);  
  6.             }  
  7. );  

 


TableColumn设置sort的3个方法 

setSortNode(Node); // 默认是表头上的小图标三角形,可以改变 
setSortable(true); // 设置可排序 

setSortType(SortType);//设置升降序 SortType.DESCENDINGSortType.ASCENDING



table.getSelectionModel().getSelectedCells().get(0).getTableColumn() // 获取选中的TableColumn
column中包含多个column,则可以调用TableColumn的getColumns().setAll(TableColumn...)

 

TableColumn firstNameColumn = new TableColumn("First");  
firstNameColumn.setCellValueFactory(new PropertyValueFactory("firstName"));  
// firstNameColumn.setCellFactory(TextFieldCellFactory.forTableColumn());  
TableColumn lastNameColumn = new TableColumn("Last");  
lastNameColumn.setCellValueFactory(new PropertyValueFactory("lastName"));  
// lastNameColumn.setCellFactory(TextFieldCellFactory.forTableColumn());  
TableColumn nameColumn = new TableColumn("Name");  
nameColumn.getColumns().setAll(firstNameColumn, lastNameColumn);  


 

 

你可能感兴趣的:(javafx)