为什么我的JavaFX TableView为空?

我想填充一个TableView ,我不知道为什么它是空的。 我有以下代码:

 public class StudentTeacherManagementController { private Client client = ClientBuilder.newClient(); private Gson g = new Gson(); private ArrayList schueler = new ArrayList(); private ArrayList lehrer = new ArrayList(); private final String REST_SERVICE_URL = "http://localhost:8080/A07_Webservice/rest/ManagementService"; @FXML private TableView tblSchueler; @FXML private TableColumn lastnameCol; @FXML private TableColumn idCol; @FXML private TableColumn firstnameCol; @FXML private TableColumn birthdateCol; @FXML private TableColumn svnrCol; @FXML private TableView tblLehrer; @FXML private TableColumn svnrLehrerCol; @FXML private TableColumn firstnameLehrerCol; @FXML private TableColumn lastnameLehrerCol; @FXML private Button btnGetSchueler; @FXML private Button btnGetLehrer; @FXML public void btnGetSchueler() { tblSchueler.getItems().removeAll(tblSchueler.getItems()); setCellConfigurationsSchueler(); Type t = new TypeToken<List>() {}.getType(); String s = client.target(REST_SERVICE_URL).path("schueler").request(MediaType.APPLICATION_JSON).get(String.class); List sch = g.fromJson(s, t); schueler = (ArrayList) sch; ObservableList oListSchueler = FXCollections.observableArrayList(schueler); tblSchueler.getItems().addAll(oListSchueler); } @FXML public void btnGetLehrer() { tblLehrer.getItems().removeAll(tblLehrer.getItems()); setCellConfigurationsLehrer(); Type t = new TypeToken<List>() {}.getType(); String s = client.target(REST_SERVICE_URL).path("lehrer").request(MediaType.APPLICATION_JSON).get(String.class); List l = g.fromJson(s, t); lehrer = (ArrayList) l; ObservableList oListLehrer = FXCollections.observableArrayList(lehrer); tblLehrer.getItems().addAll(oListLehrer); } 

这是我的.fxml - File

                        

你知道为什么这张桌子是空的吗? 此外,这是Schueler类。 我没有得到任何错误,为什么这段代码不起作用?

 public class Lehrer { private String svnr; private String vorname; private String nachname; public Lehrer(String svnr, String vorname, String nachname) { this.svnr = svnr; this.vorname = vorname; this.nachname = nachname; } public void setSvnr(String svnr) { this.svnr = svnr; } public String getSvnr() { return svnr; } public void setVorname(String vorname) { this.vorname = vorname; } public String getVorname() { return vorname; } public void setNachname(String nachname) { this.nachname = nachname; } public String getNachname() { return nachname; } } 

任何帮助,将不胜感激! 我可以从webservice加载数据,这就是为什么列表不为空但我仍然无法填充tableview。

首先,您必须在initialize方法中为表的每一列设置Cell Value Factory:

  @Override public void initialize(URL url, ResourceBundle rb) { lastnameCol.setCellValueFactory(new PropertyValueFactory<>("lastName")); ... 

而不是tableView.getItems.addAll使用tableView.setItems