Tableview не заполняет JavaFX - PullRequest
0 голосов
/ 04 июля 2018

так что я видел все уже заданные вопросы и пробовал их, но это не работает.

Вот мой код:

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

}

}

введите описание изображения здесь

1 Ответ

0 голосов
/ 05 июля 2018

Вы используете неверные параметры типа для TableColumn и TableView. Поскольку элементы TableView относятся к типу Client (по крайней мере, это кажется намерением), вы должны использовать TableView<Client> и TableColumn<Client, String>.

Кроме того, вы не устанавливаете TableView пунктов.

Также вы используете TableColumn.cellValueFactory неправильно. cellValueFactory используется для каждой строки, которая TableView отображается на экране. Использование значений последнего Client приводит к тому, что значения из последнего элемента используются для каждой непустой строки. Вместо этого вы должны использовать значения, предоставленные TableColumn.CellDataFeatures, переданные в Callback.

@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);
}
...