我正在研究一个应该显示来自不同类型模型的数据的TableView。当我使用一个模型时,一切正常。但是,只要我添加其他模型,就会发现OPTable.getColumns().addAll(...);
错误。我无法理解错误描述。
The method addAll(int, Collection<? extends TableColumn<capture#4-of ?,?>>) in the type List<TableColumn<capture#4-of ?,?>> is not applicable for the arguments (TableColumn<Ofenproben,String>, TableColumn<Ofenproben,String>, TableColumn<Auftrag,String>, TableColumn<Ofenproben,String>, TableColumn<ModelConverter,String>, TableColumn<ModelConverter,String>, TableColumn<ModelConverter,String>)
这是我的TableView:
TableView<?> OPTable= new TableView();
OPTable.setEditable(true);
OPTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
OPTable.setColumnResizePolicy((param) -> true );
TableColumn<Ofenproben, String> TLPCol = new TableColumn<Ofenproben, String>("TLP Typ");
TableColumn<Ofenproben, String> LosCol= new TableColumn<Ofenproben, String>("Losbezeichnung");
TableColumn<Auftrag, String> AKBCol = new TableColumn<Auftrag, String>("Auftragskurzbezeichnung");
AKBCol.setPrefWidth(350);
TableColumn<Ofenproben, String> ProbenNrCol = new TableColumn<Ofenproben, String>("Probennummer");
TableColumn<ModelConverter, String> OfenCol = new TableColumn<ModelConverter, String>("Ofen");
TableColumn<ModelConverter, String> PlatzNrCol = new TableColumn<ModelConverter, String>("Platz");
TableColumn<ModelConverter, String> ProbeFertigCol = new TableColumn<ModelConverter, String>("Proben fertig");
//Sub Columns
TableColumn<ModelConverter, Boolean> EinsCol = new TableColumn<ModelConverter, Boolean>("1");
TableColumn<ModelConverter, Boolean> ZweiCol = new TableColumn<ModelConverter, Boolean>("2");
TableColumn<ModelConverter, Boolean> DreiCol = new TableColumn<ModelConverter, Boolean>("3");
TableColumn<ModelConverter, Boolean> VierCol = new TableColumn<ModelConverter, Boolean>("4");
// Sub columns an Proben Fertig anfügen
ProbeFertigCol.getColumns().addAll(EinsCol, ZweiCol, DreiCol, VierCol);
//Daten einfügen von Klasse Ofenproben
TLPCol.setCellValueFactory(new PropertyValueFactory<>("TLP"));
LosCol.setCellValueFactory(new PropertyValueFactory<>("Los"));
AKBCol.setCellValueFactory(new PropertyValueFactory<>("AKB"));
ProbenNrCol.setCellValueFactory(new PropertyValueFactory<>("ProbenNr"));
OfenCol.setCellValueFactory(new PropertyValueFactory<>("Ofen"));
OfenCol.setCellFactory(TextFieldTableCell.<ModelConverter> forTableColumn());
OfenCol.setOnEditCommit((CellEditEvent<ModelConverter, String> event) -> {
TablePosition<ModelConverter, String> pos = event.getTablePosition();
String newOfen = event.getNewValue();
int row = pos.getRow();
ModelConverter mc = event.getTableView().getItems().get(row);
mc.setOfen(newOfen);
});
PlatzNrCol.setCellValueFactory(new PropertyValueFactory<>("PlatzNr"));
PlatzNrCol.setCellFactory(TextFieldTableCell.<ModelConverter> forTableColumn());
PlatzNrCol.setOnEditCommit((CellEditEvent<ModelConverter, String> event) -> {
TablePosition<ModelConverter, String> pos = event.getTablePosition();
String newStellplatz = event.getNewValue();
int row = pos.getRow();
ModelConverter mc = event.getTableView().getItems().get(row);
mc.setStellplatz(newStellplatz);
});
EinsCol.setCellValueFactory(new PropertyValueFactory<>("checked"));
ZweiCol.setCellValueFactory(new PropertyValueFactory<>("checked"));
DreiCol.setCellValueFactory(new PropertyValueFactory<>("checked"));
VierCol.setCellValueFactory(new PropertyValueFactory<>("checked"));
EinsCol.setCellFactory(CheckBoxTableCell.forTableColumn(EinsCol));
ZweiCol.setCellFactory(CheckBoxTableCell.forTableColumn(ZweiCol));
DreiCol.setCellFactory(CheckBoxTableCell.forTableColumn(DreiCol));
VierCol.setCellFactory(CheckBoxTableCell.forTableColumn(VierCol));
//ObservableList<ModelConverter> list = getProbenList();
//OPTable.setItems(list);
OPTable.getColumns().addAll(TLPCol, LosCol, AKBCol, ProbenNrCol, OfenCol, PlatzNrCol, ProbeFertigCol);
请帮忙并给我一个代码示例来解决这个问题。