JavaFX: manejar evento de selección ComboBox que está dentro de la columna TableView
Tengo un javafxTableView
y quiero controles personalizados dentro de las columnas. Di que quiero unTextField
encolumn1
yComboBox
encolumn2
yDatePicker
encolumn3
.
Sé que debería crear una clase que se extiendaTableCell
y anular elupdateItem()
método....
Pero leí que específicamente para este propósito tenemos clases predeterminadas comoComboBoxTableCell
, TextFieldTableCell
etc en el paquete de la celda y se recomienda usarlos. Así que puedo lograr esto con el siguiente código.
loadingStatusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn("Off", "Load All", "Load By Time"));
startTimeTableColumn.setCellFactory(TextFieldTableCell.forTableColumn(null));
stopTimeTableColumn.setCellFactory(TextFieldTableCell.forTableColumn(null));
Ahora mi requisito es cuando selecciono algún valor deloadingStatusTableColumn
cuadro combinado (decir"Off"
), Quiero deshabilitar las siguientes 2 columnasstartTimeTableColumn
, stopTimeTableColumn
y deberían habilitarse cuando selecciono cualquier valor que no sea"Off"
en elloadingStatusTableColumn
columna.
Cómo lograr esto con mi código anterior (sin crear la subclase TableCell).
¿Puedo lograr el siguiente efecto de línea a través de FXML?
loadingStatusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn("Off", "Load All", "Load By Time"));
<cellFactory><MyCellFactory /></cellValueFactory>
Sé que lo anterior funciona porque es una clase personalizada que tengo, pero ¿puedo hacer lo siguiente?
<cellFactory><ComboBoxTableCell /></cellValueFactory>
¡Gracias por adelantado!