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