ich versuche Tableview in meiner javafx App zu verwenden, aber es ist mir leere Zeilen in Tableview geben ..... Hier ist Beispielausgabe:leere Zeile in Tableview JavaFx APP
Hier ist die Code für Modellklasse:
public class Pizza {
private final SimpleStringProperty pname;
private final SimpleStringProperty pflavour;
private final SimpleStringProperty psize;
private final SimpleDoubleProperty pprice;
public Pizza(String name, String flavour, String size, Double price) {
super();
this.pname = new SimpleStringProperty(name);
this.pflavour = new SimpleStringProperty(flavour);
this.psize = new SimpleStringProperty(size);
this.pprice = new SimpleDoubleProperty(price);
}
public String getName() {
return pname.get();
}
public String getFlavour() {
return pflavour.get();
}
public String getSize() {
return psize.get();
}
public Double getPrice() {
return pprice.get();
}
}
Hier ist der Code für die Controller-Klasse:
@FXML
private TableView<Pizza> pizzatable;
@FXML
private TableColumn<Pizza,String> pname;
@FXML
private TableColumn<Pizza,String> pflavour;
@FXML
private TableColumn<Pizza,String> psize;
@FXML
private TableColumn<Pizza,Double> pprice;
ObservableList<Pizza> pizzalist;
Hier ist der Code für die Methode, die ich Daten aus databse holen rufen:
public void fetchpizza() throws SQLException{
stmt = conn.createStatement();
sql = "select * from items where itype = 'Pizza'";
rs = stmt.executeQuery(sql);
pname.setCellValueFactory(new PropertyValueFactory<Pizza,String>("pname"));
pflavour.setCellValueFactory(new PropertyValueFactory<Pizza,String>("pflavour"));
psize.setCellValueFactory(new PropertyValueFactory<Pizza,String>("psize"));
pprice.setCellValueFactory(new PropertyValueFactory<Pizza,Double>("pprice"));
pizzalist = FXCollections.observableArrayList();
while(rs.next()){
pizzalist.add(new Pizza(rs.getString("oname"),rs.getString("flavour"),rs.getString("size"),rs.getDouble("price")));
pizzatable.setItems(pizzalist);
}
rs.close();
stmt.close();
}
Zuerst bist du sicher, dass dein itype = 'Pizza' gut geschrieben ist?, Zweitens funktioniert dieser pizzalist.add ("toto", "tata", "titi", "waou")? – Destrif
Sie müssen die 'Elemente' der' TableView' nicht in jeder Iteration der Schleife festlegen. Dies einmal zu tun sollte ausreichen. – fabian