【发布时间】:2014-05-08 09:06:21
【问题描述】:
我正在尝试将 ComboBox 放入表格单元格中,但我不能。代码是下一个:
private void cargaTablaDesglose() {
TableColumn<Map, String> column1 = new TableColumn<>(Desglose1);
TableColumn<Map, String> column2 = new TableColumn<>(Desglose2);
TableColumn<Map, String> column3 = new TableColumn<>(Desglose3);
column1.setCellValueFactory(new MapValueFactory(Desglose1));
column1.setMaxWidth(0);
column2.setCellValueFactory(new ComboBoxTableCell.forTableColumn(null));
column2.setPrefWidth(150);
column3.setCellValueFactory(new MapValueFactory(Desglose3));
column3.setPrefWidth(250);
if (CUOD.modifyData()) {
column2.setOnEditCommit((TableColumn.CellEditEvent<Map, String> t) -> {
actualizaObra(t.getRowValue(), t.getNewValue());
});
}
tablaDesglose.getItems().clear();
tablaDesglose.setEditable(true);
tablaDesglose.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
tablaDesglose.getSelectionModel().setCellSelectionEnabled(false);
tablaDesglose.getColumns().clear();
tablaDesglose.getColumns().addAll(column1, column2, column3);
Callback<TableColumn<Map, String>, TableCell<Map, String>> cellFactoryMap
= CUCF.getFactoryMap();
column1.setCellFactory(cellFactoryMap);
column2.setCellFactory(cellFactoryMap);
column3.setCellFactory(cellFactoryMap);
}
说找不到ComboBoxTableCell的forTableColumn方法
【问题讨论】:
-
forTableColumn方法是静态的。您应该将其命名为ComboBoxTableCell.forTableColumn(null)并在其中传递有效参数(如字符串转换器和用于创建组合框的集合)。 -
我创建了一个 ObservableList、一个数组、一个列表,但它不起作用。
-
尝试将这个简单的示例插入您的代码并检查它是否有效:
column2.setCellFactory(ComboBoxTableCell.forTableColumn(new DefaultStringConverter(), FXCollections.observableArrayList("1", "2", "3")));
标签: combobox javafx tableview tablecell