我有一个javafx TableView ,我希望列内有自定义控件 . 假设 column1 中的 TextFieldcolumn2 中的 ComboBox 以及 column3 中的 DatePicker .

我知道我应该创建一个扩展 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 ,当我在 loadingStatusTableColumn 列中选择除 "Off" 之外的任何值时,它们应该被启用 .

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

  • 我能通过FXML实现以下线下效果吗?

loadingStatusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn("Off", "Load All", "Load By Time"));
<cellFactory><MyCellFactory /></cellValueFactory>

我知道上面的作品,因为它是我的自定义课程,但我可以在下面做吗?

<cellFactory><ComboBoxTableCell /></cellValueFactory>

提前致谢!