Reputation:
I am trying to implement a simple table with JavaFX TableView. The table and the columns are displayed but not the content. I read everything I could find on the topic but could not find the cause. Thank you for your help.
ObservableList<DatensatzMitarbeiter> data = FXCollections.observableArrayList(
new DatensatzMitarbeiter("1", "Jacob", "Minijob", "false"),
new DatensatzMitarbeiter("2", "Isabella", "Vollzeit", "true"),
new DatensatzMitarbeiter("3", "Ethan", "Teilzeit", "false"),
new DatensatzMitarbeiter("4", "Emma", "Minijob", "false"),
new DatensatzMitarbeiter("5", "Michael", "Minijob", "false")
);
//
TableColumn<DatensatzMitarbeiter,String> spalte1 = new TableColumn<DatensatzMitarbeiter,String>("ID");
spalte1.setCellValueFactory(new PropertyValueFactory<DatensatzMitarbeiter, String>("id"));
//
TableColumn<DatensatzMitarbeiter,String> spalte2 = new TableColumn<DatensatzMitarbeiter,String>("Nachname");
spalte2.setCellValueFactory(new PropertyValueFactory<DatensatzMitarbeiter, String>("nachname"));
//
TableColumn<DatensatzMitarbeiter,String> spalte3 = new TableColumn<DatensatzMitarbeiter,String>("Status");
spalte3.setCellValueFactory(new PropertyValueFactory<DatensatzMitarbeiter, String>("status"));
//
TableColumn<DatensatzMitarbeiter,String> spalte4 = new TableColumn<DatensatzMitarbeiter,String>("Admin");
spalte4.setCellValueFactory(new PropertyValueFactory<DatensatzMitarbeiter, String>("admin"));
//
tabelle = new TableView<DatensatzMitarbeiter>();
tabelle.setItems(data);
tabelle.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
tabelle.getColumns().add(spalte1);
tabelle.getColumns().add(spalte2);
tabelle.getColumns().add(spalte3);
tabelle.getColumns().add(spalte4);
class DatensatzMitarbeiter
{
private String id;
private String nachname;
private String status;
private String admin;
DatensatzMitarbeiter(String id,
String nachname,
String status,
String admin)
{
this.id = id;
this.nachname = nachname;
this.status = status;
this.admin = admin;
}
String getId()
{
return id;
}
String getNachname()
{
return nachname;
}
String getStatus()
{
return status;
}
String getAdmin()
{
return admin;
}
}
Upvotes: 1
Views: 636
Reputation: 209684
Make the get
methods and the data model class public
.
Alternatively, if you are using Java 8, avoid using the (somewhat legacy) PropertyValueFactory
:
spalte1.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getId()));
(and similarly for the other columns).
Upvotes: 1