Moin,
also ich habe mir die offizielle Dokumentation angeguckt. Allerdings bin ich mir nicht sicher, ob ich es richtig verstanden habe. Ich bin mir sicher, es gibt da auch wieder verschiedene Lösungswege. Ich muss leider sagen, dass ich noch immer Programmieranfänger bin und 99% meiner Zeit bisher mit C# verbracht habe, weshalb mich die Umstellung jetzt noch härter trifft. Viele Dinge wo funktionieren, gehen jetzt nicht mehr *g*
Zum Problem:
Um die Sache auszutesten, habe ich ein kleines Projekt erstellt um die Funktionsweise zu lernen.
Ich möchte einfach gesagt ein TableView mit Items füllen, bin mir aber wie gesagt nicht sicher, ob ich es richtig verstanden habe und so funktioniert, wie ich es mir vorstelle. Das Problem dabei ist, die Tabelle wird zwar erstellt ( per Buttonclick ), aber die Zellen sind leer.
Hier ist mal der Code:
1. Ich schätze man kann die Columns mit der FX:ID direkt mit Daten befüllen, oder mittels einer ObservableList direkt die Table befüllen? Oder die Column außerhalb des FXML erstellen und dann der Table hinzufügen.
2. Wenn ich die offizielle Doku richtig verstanden habe kann man bei
@FXML
private TableColumn<Door, String> columnname;
die Klasse angeben und sich dann bei z.b. bei String auf die Propertys der Klasse zugreifen?
3. Ich hatte es auch mit columnname.setCellValueFactory getestet. Allerdings hatte das auch nicht funktioniert.
4. Oder kann es sein, dass ich da irgendwas "overriden" muss, und dass er mir deshalb die Sachen nicht anzeigt?
Also Ziel ist es im Idealfall eine ObservableList<Door> der Table hinzufügen, so dass er mir die Propertys der einzelnen Doors als String in der Table anzeigt.
Danke im Voraus
also ich habe mir die offizielle Dokumentation angeguckt. Allerdings bin ich mir nicht sicher, ob ich es richtig verstanden habe. Ich bin mir sicher, es gibt da auch wieder verschiedene Lösungswege. Ich muss leider sagen, dass ich noch immer Programmieranfänger bin und 99% meiner Zeit bisher mit C# verbracht habe, weshalb mich die Umstellung jetzt noch härter trifft. Viele Dinge wo funktionieren, gehen jetzt nicht mehr *g*
Zum Problem:
Um die Sache auszutesten, habe ich ein kleines Projekt erstellt um die Funktionsweise zu lernen.
Ich möchte einfach gesagt ein TableView mit Items füllen, bin mir aber wie gesagt nicht sicher, ob ich es richtig verstanden habe und so funktioniert, wie ich es mir vorstelle. Das Problem dabei ist, die Tabelle wird zwar erstellt ( per Buttonclick ), aber die Zellen sind leer.
Hier ist mal der Code:
Code:
public class Door {
private StringProperty name;
public Door(String name) {
this.name = new SimpleStringProperty(name);
}
public String GetString(){
return name.get();
}
public void SetString(String name) {
this.name.set(name);
}
}
Code:
@FXML
private TableView<Door> myTable;
@FXML
private TableColumn<Door, String> columnname;
@FXML
private Button myBtn;
@FXML
private void btnAction(ActionEvent event) {
ObservableList<Door> doorList = FXCollections.observableArrayList();
Door newDoor1 = new Door("Tür1");
Door newDoor2 = new Door("Tür2");
doorList.add(newDoor1);
doorList.add(newDoor2);
----------------------------------------------------------------------
myTable.setItems(doorList);
}
1. Ich schätze man kann die Columns mit der FX:ID direkt mit Daten befüllen, oder mittels einer ObservableList direkt die Table befüllen? Oder die Column außerhalb des FXML erstellen und dann der Table hinzufügen.
2. Wenn ich die offizielle Doku richtig verstanden habe kann man bei
@FXML
private TableColumn<Door, String> columnname;
die Klasse angeben und sich dann bei z.b. bei String auf die Propertys der Klasse zugreifen?
3. Ich hatte es auch mit columnname.setCellValueFactory getestet. Allerdings hatte das auch nicht funktioniert.
4. Oder kann es sein, dass ich da irgendwas "overriden" muss, und dass er mir deshalb die Sachen nicht anzeigt?
Also Ziel ist es im Idealfall eine ObservableList<Door> der Table hinzufügen, so dass er mir die Propertys der einzelnen Doors als String in der Table anzeigt.
Danke im Voraus