Tableview没有';t填充JavaFX

Tableview没有';t填充JavaFX,java,uitableview,javafx,empty-list,Java,Uitableview,Javafx,Empty List,所以我已经看到了所有已经被问到的问题,并且尝试了它们,但是它不起作用 这是我的密码: public class SelectClientInterface implements Initializable { //Views @FXML TableView<String> selectClientTable; @FXML TableColumn<String, String> CodeC, NomC, RegCommerceC, IdFiscalC, NArtFisC;

所以我已经看到了所有已经被问到的问题,并且尝试了它们,但是它不起作用

这是我的密码:

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());
    }

}
public类SelectClientInterface实现了可初始化{
//观点
@FXML
TableView selectClientTable;
@FXML
TableColumn编解码器、NomC、RegCommerce、IdFiscalC、NArtFisC;
@FXML
按钮选择ClientButton,返回选择ClientButton;
ObservableList mylist=FXCollections.observableArrayList();
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
populateTable();
}
void populateTable(){
mylist.addAll(clientsArray);
用于(客户端:clientsArray){
setCellValueFactory(c->new SimpleStringProperty(String.valueOf(client.getCodeC()));
NomC.setCellValueFactory(c->new SimpleStringProperty(client.getNomC());
setCellValueFactory(c->new SimpleStringProperty(client.getRegCom());
IdFiscalC.setCellValueFactory(c->new SimpleStringProperty(client.getIdFiscal());
setCellValueFactory(c->new SimpleStringProperty(client.getnArticleFiscal());
System.out.println(String.valueOf(client.getCodeC())+client.getNomC()+client.getRegCom()+client.getIdFiscal()+client.getnArticleFiscal());
}
}
}


您对
TableColumn
TableView
使用了错误的类型参数。由于
TableView
的项目属于
Client
类型(至少看起来是这样),因此应该使用
TableView
TableColumn

此外,您没有设置
TableView

另外,您使用的
TableColumn.cellValueFactory
错误。
cellValueFactory
用于屏幕上显示的
TableView
的每一行。使用最后一个
客户端的值
将导致最后一个项目的值用于每个非空行。相反,您应该使用传递给
回调的
TableColumn.CellDataFeatures
提供的值

@FXML
TableView<Client> selectClientTable;
@FXML
TableColumn<Client, 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);

    CodeC.setCellValueFactory(c -> new SimpleStringProperty(String.valueOf(c.getValue().getCodeC())));
    NomC.setCellValueFactory(c -> new SimpleStringProperty(c.getValue().getNomC()));
    RegCommerceC.setCellValueFactory(c -> new SimpleStringProperty(c.getValue().getRegCom()));
    IdFiscalC.setCellValueFactory(c -> new SimpleStringProperty(c.getValue().getIdFiscal()));
    NArtFisC.setCellValueFactory(c -> new SimpleStringProperty(c.getValue().getnArticleFiscal()));

    for (Clients client : clientsArray) {
        System.out.println(String.valueOf(client.getCodeC()) + client.getNomC() + client.getRegCom() + client.getIdFiscal() + client.getnArticleFiscal());
    }

    selectClientTable.setItems(mylist);
}
@FXML
TableView selectClientTable;
@FXML
TableColumn编解码器、NomC、RegCommerce、IdFiscalC、NArtFisC;
@FXML
按钮选择ClientButton,返回选择ClientButton;
ObservableList mylist=FXCollections.observableArrayList();
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
populateTable();
}
void populateTable(){
mylist.addAll(clientsArray);
setCellValueFactory(c->new SimpleStringProperty(String.valueOf(c.getValue().getCodeC()));
NomC.setCellValueFactory(c->new SimpleStringProperty(c.getValue().getNomC());
regcommerce.setCellValueFactory(c->new SimpleStringProperty(c.getValue().getRegCom());
IDviscalc.setCellValueFactory(c->new SimpleStringProperty(c.getValue().getIDviscal());
setCellValueFactory(c->new SimpleStringProperty(c.getValue().getnArticleFiscal());
用于(客户端:clientsArray){
System.out.println(String.valueOf(client.getCodeC())+client.getNomC()+client.getRegCom()+client.getIdFiscal()+client.getnArticleFiscal());
}
选择ClientTable.setItems(mylist);
}

哪里是
clientsArray
声明的?在上一个屏幕中声明并填写了它吗?正如您所看到的,我使用日志进行了测试,发现它已填写并正常工作,并且显示了项目。我如何才能做到这一点?我是javaFX新手…使用
getCellFactory()
我就是这样做的:System.out.println(CodeC.getCellValueFactory().toString());在填充表void的末尾,这里是它打印的内容:interfaces.controllers.SelectClientInterface$$Lambda$320/1113190516@21db2d8f