JavaFX - TableView - setItems: метод setItems (ObservableList) в типе TableView мне ничего не показывает - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок здесь, так что я не знаю точно, что делать, но у меня есть эта проблема my tableview.setitems (oblist); когда я запускаю свою программу, табличное представление не показывает мне ничего странного в области

public class FXMLTableController implements Initializable {
private  Connection con;

@FXML
private TableView<LOC> tableview;
@FXML
private TableColumn<LOC, Integer> ttidLoc;
@FXML
private TableColumn<LOC,Integer> ttidProd;
@FXML
private TableColumn<LOC, Float> ttPrixJour;
@FXML
private TableColumn<LOC,Integer> ttMaxJour;
@FXML
private TableColumn<LOC,Integer> ttidClient;

ObservableList<LOC> oblist=FXCollections.observableArrayList();

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


    try {
         con = DataBase.getInstance().getConnection();
        ResultSet rs = con.createStatement().executeQuery("select * from locations");

        while(rs.next()) {
            oblist.add(new LOC(rs.getInt("idLoc"),rs.getInt("idProd"),rs.getFloat("PrixJour"),rs.getInt("MaxJour"),rs.getInt("idClient")));
        } 

        ttidLoc.setCellValueFactory(new PropertyValueFactory<>("idLoc"));
        ttidProd.setCellValueFactory(new PropertyValueFactory<>("idProd"));
        ttPrixJour.setCellValueFactory(new PropertyValueFactory<>("PrixJour"));
        ttMaxJour.setCellValueFactory(new PropertyValueFactory<>("MaxJour"));
        ttidClient.setCellValueFactory(new PropertyValueFactory<>("idClient"));



       tableview.setItems(oblist);
    } catch (SQLException ex) {
        Logger.getLogger(FXMLTableController.class.getName()).log(Level.SEVERE, null, ex);
    }


}

}

вот мой код сущностей, с которым я работаю

public class LOC {
private int idLoc;
private int idProd;
private float PrixJour;
private int MaxJour;
private int idClient;

public LOC(int idLoc, int idProd, float PrixJour, int MaxJour, int idClient) {
    this.idLoc = idLoc;
    this.idProd = idProd;
    this.PrixJour = PrixJour;
    this.MaxJour = MaxJour;
    this.idClient=idClient;
}

public LOC( int idProd, float PrixJour, int MaxJour, int idClient) {

    this.idProd = idProd;
    this.PrixJour = PrixJour;
    this.MaxJour = MaxJour;
    this.idClient=idClient;

кстати я использую scenebuilder, и я пытаюсь открыть табличное представление в другой сцене, нажимая кнопку на первой

1 Ответ

0 голосов
/ 20 февраля 2020

U также может использовать собственную реализацию CellValueFactory таким образом, чтобы вы не полагались на логику отражения c PropertyValueFactory. Как пример:

ttidLoc.setCellValueFactory(param -> {
    LOC value = param.getValue();
    return new SimpleObjectProperty<>(value.idLoc);
});
...