JavaFX:处理TableView列

时间:2017-01-08 08:30:14

标签: javafx java-8 javafx-2 javafx-8

我有一个javafx TableView,我希望列内有自定义控件。假设我想要TextField中的column1ComboBox中的column2以及DatePicker中的column3

我知道我应该创建一个扩展TableCell并覆盖updateItem()方法的类....

但我特意为此目的阅读了单元包中的ComboBoxTableCellTextFieldTableCell等默认类,建议使用它们。因此,我可以使用以下代码实现此目的。

loadingStatusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn("Off", "Load All", "Load By Time"));
startTimeTableColumn.setCellFactory(TextFieldTableCell.forTableColumn(null));
stopTimeTableColumn.setCellFactory(TextFieldTableCell.forTableColumn(null));

现在我的要求是当我从loadingStatusTableColumn组合框中选择一些值时(说"Off"),我想禁用接下来的两列startTimeTableColumnstopTimeTableColumn和它们我应该在"Off"列中选择除loadingStatusTableColumn以外的任何值时启用。

  1. 如何使用上面的代码实现这一点(不创建TableCell子类)。

  2. 我可以通过FXML实现以下线下效果吗?

    loadingStatusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn("Off", "Load All", "Load By Time"));
    
    <cellFactory><MyCellFactory /></cellValueFactory>
    
  3. 我知道以上的作品,因为它是我的自定义课程,但我可以在下面进行吗?

     
    <cellFactory><ComboBoxTableCell /></cellValueFactory>
    

    提前致谢!

0 个答案:

没有答案