从不同模型获取数据时出现奇怪的TableView错误

时间:2018-03-15 10:09:09

标签: javafx tableview

我正在研究一个应该显示来自不同类型模型的数据的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);

请帮忙并给我一个代码示例来解决这个问题。

0 个答案:

没有答案