Hallo,
Ich versuche ein kleines Programm zu programmieren bei welchem man Artikel eintragen kann (in einem 2. Fenster) und diese dann in einer Tabelle (anderes Fenster) erfasst werden. Ich habe jedoch das Problem das neu eingetragene Artikel in der Tabelle nicht angezeigt werden. Wenn ich einen Artikel von Anfang an erstelle wird dieser jedoch in der Tabelle angezeigt z.B.
artikelList.add(new Artikel("TEST Artikel Name"," Test Beschreibung", 300));
Woran liegt das? Mir kommt es so vor als wie wenn ein neuer Artikel zwar erstellt wird, aber die Tabelle die Daten nicht aktualisiert und somit die neuen Artikel nicht angezeigt werden...
Erstes Fenster mit TableView:
Artikel Klasse:
2. Fenster zum erstellen/eintragen der neuen Artikel:
Danke für eure Hilfe!!
Ich versuche ein kleines Programm zu programmieren bei welchem man Artikel eintragen kann (in einem 2. Fenster) und diese dann in einer Tabelle (anderes Fenster) erfasst werden. Ich habe jedoch das Problem das neu eingetragene Artikel in der Tabelle nicht angezeigt werden. Wenn ich einen Artikel von Anfang an erstelle wird dieser jedoch in der Tabelle angezeigt z.B.
artikelList.add(new Artikel("TEST Artikel Name"," Test Beschreibung", 300));
Woran liegt das? Mir kommt es so vor als wie wenn ein neuer Artikel zwar erstellt wird, aber die Tabelle die Daten nicht aktualisiert und somit die neuen Artikel nicht angezeigt werden...
Erstes Fenster mit TableView:
Java:
public class MainWindowController {
//Views
@FXML public TableView <Artikel> tableView;
@FXML public TableColumn <Artikel, String> artikelColumn;
@FXML public TableColumn <Artikel, String> beschreibungColumn;
@FXML public TableColumn <Artikel, Double> preisColumn;
String artName;
String artBeschreibung;
Double artPreis;
private Main main;
private Stage primaryStage;
public Artikel artikel;
public ObservableList<Artikel> artikelList = FXCollections.observableArrayList();
public void initialize(){
artikelColumn.setCellValueFactory(new PropertyValueFactory<Artikel, String>("artikelName"));
beschreibungColumn.setCellValueFactory(new PropertyValueFactory<Artikel, String>("beschreibung"));
preisColumn.setCellValueFactory(new PropertyValueFactory<Artikel, Double>("preis"));
}
public void setMain(Main main, Stage primaryStage) { // Verbindung Main Class
this.main = main;
this.primaryStage = primaryStage;
artikelList.add(new Artikel("test","beschreibung", 300));
tableView.setItems(FXCollections.observableArrayList(artikelList));
}
@FXML
public void onCloseStage() {
primaryStage.close();
}
@FXML
public void onAddArticle() {
main.articleWindow();
}
}
Artikel Klasse:
Java:
public class Artikel {
private StringProperty artikelName;
private StringProperty beschreibung;
private DoubleProperty preis;
public Artikel(String artikelName, String beschreibung, double preis) {
this.artikelName = new SimpleStringProperty(artikelName);
this.beschreibung = new SimpleStringProperty(beschreibung);
this.preis = new SimpleDoubleProperty(preis);
}
//GETTER
public String getArtikelName() {
return artikelName.get();
}
public String getBeschreibung() {
return beschreibung.get();
}
public double getPreis() {
return preis.get();
}
//SETTER
public void setArtikelName(String artikelName) {
this.artikelName.set(artikelName);
}
public void setBeschreibung(String beschreibung) {
this.beschreibung.set(beschreibung);
}
public void setPreis(double preis) {
this.preis.set(preis);
}
}
2. Fenster zum erstellen/eintragen der neuen Artikel:
Java:
public class AddArticleController {
//Views
@FXML private TextField txtArtikelName;
@FXML private TextArea txtBeschreibung;
@FXML private TextField txtPreis;
String artName;
String artBeschreibung;
double artPreis;
private ObservableList<Artikel> artikelList = FXCollections.observableArrayList();
private Main main;
private Stage secondaryStage;
public Artikel artikel;
public void setMain(Main main, Stage secondaryStage) { // Verbindung Main Class
this.main = main;
this.secondaryStage = secondaryStage;
}
@FXML
public void goBack() {
secondaryStage.close();
}
@FXML
public void onAddArticle(){
artikelList.add(new Artikel(txtArtikelName.getText(), txtBeschreibung.getText(), Double.parseDouble(txtPreis.getText())));
System.out.println("Eingetragene Daten: " + artikelList.size());
txtArtikelName.clear();
txtBeschreibung.clear();
txtPreis.clear();
}
}
Danke für eure Hilfe!!