TableColumn列
列与Bean之间建立联系:
setCellValueFactory();
通过cell值工厂建立与Bean的联系。它这里并不需要知道你是传了什么Bean,它只需要通过“字段名”反射去Bean里面获得值,所以Bean属性定义的名字不需要与它相同,只需要有字段名Property()
方法。
setCellValueFactory(new PropertyValueFactory<Person, String>("字段名"));
setCellValueFactory(new CallBack<T,S>());
TableColumn设置sort的3个方法
setSortNode(Node); // 默认是表头上的小图标三角形,可以改变
setSortable(true); // 设置可排序
setSortType(SortType);//设置升降序 SortType.DESCENDING和SortType.ASCENDING
table.getSelectionModel().getSelectedCells().get(0).getTableColumn() // 获取选中的TableColumn
column中包含多个column,则可以调用TableColumn的getColumns().setAll(TableColumn...)
TableColumn<Person, String> firstNameColumn = new TableColumn<Person, String>("First"); firstNameColumn.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName")); // firstNameColumn.setCellFactory(TextFieldCellFactory.<Person>forTableColumn()); TableColumn<Person, String> lastNameColumn = new TableColumn<Person, String>("Last"); lastNameColumn.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName")); // lastNameColumn.setCellFactory(TextFieldCellFactory.<Person>forTableColumn()); TableColumn<Person, String> nameColumn = new TableColumn<Person, String>("Name"); nameColumn.getColumns().setAll(firstNameColumn, lastNameColumn);