Tableview不会填充JavaFX

时间:2018-07-04 19:13:21

标签: java uitableview javafx empty-list

所以我已经看到了所有已经问过的问题,并尝试了它们,但这是行不通的。

这是我的代码:

public class SelectClientInterface implements Initializable {

//Views
@FXML
TableView<String> selectClientTable;
@FXML
TableColumn<String, String> CodeC, NomC, RegCommerceC, IdFiscalC, NArtFisC;
@FXML
Button selectClientButton, returnSelectClientButton;

ObservableList<Clients> mylist = FXCollections.observableArrayList();

@Override
public void initialize(URL location, ResourceBundle resources) {
    populateTable();
}


void populateTable() {
    mylist.addAll(clientsArray);

    for (Clients client : clientsArray) {
        CodeC.setCellValueFactory(c -> new SimpleStringProperty(String.valueOf(client.getCodeC())));
        NomC.setCellValueFactory(c -> new SimpleStringProperty(client.getNomC()));
        RegCommerceC.setCellValueFactory(c -> new SimpleStringProperty(client.getRegCom()));
        IdFiscalC.setCellValueFactory(c -> new SimpleStringProperty(client.getIdFiscal()));
        NArtFisC.setCellValueFactory(c -> new SimpleStringProperty(client.getnArticleFiscal()));

        System.out.println(String.valueOf(client.getCodeC()) + client.getNomC() + client.getRegCom() + client.getIdFiscal() + client.getnArticleFiscal());
    }

}

}

enter image description here

1 个答案:

答案 0 :(得分:0)

您为TableColumnTableView使用了错误的类型参数。由于TableView的项目类型为Client(至少似乎是故意的),因此应使用TableView<Client>TableColumn<Client, String>

此外,您没有设置TableView项。

另外,您使用的是TableColumn.cellValueFactory错误。 cellValueFactory用于TableView在屏幕上显示的每一行。使用最后一个Client的值会导致最后一个项目的值用于每个非空行。相反,您应该使用传递给TableColumn.CellDataFeatures的{​​{1}}提供的值。

Callback