Tableview Daten hinzufügen und aktualisieren

Jak111

Mitglied
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:
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!!:)
 

MichaProgs

Aktives Mitglied
Hi Jak,

versuch es mal hiermit:

tableView.getColumns().get(0).setVisible(false);
tableView.getColumns().get(0).setVisible(true);

Einfach nachdem du die Daten der obsList gegeben hast.

Gruß
TB94
 

Joose

Top Contributor
Du erstellst in beiden Controllern eine Liste -> sprich du hast dann 2 Listen Objekte, wenn du einer etwas hinzufügst wie soll denn die andere das mitbekommen? ;)

Lösungansatz: Du musst das Listen Objekt aus deinem MainWindowController an denn AddArticleController übergeben
 

Jak111

Mitglied
Lösungansatz: Du musst das Listen Objekt aus deinem MainWindowController an denn AddArticleController übergeben

Wie gehe ich dabei am besten vor (vor allem um das MVC Modell einzuhalten). Muss ich im addArticelController mit MainWindowcontroller c = new MainWindowController() die Verbindung zum anderen Controller aufbauen und dann mit controller.artikelList.add(.....) die Liste füllen?

Danke für deine Hilfe!:)
 

MichaProgs

Aktives Mitglied
Ja, da hat der Joose wohl eher recht :D
Ich hatte aber auch schon Probleme beim aktualisieren der Daten in der Liste und da hilft das mit dem setVisible().

Ich würde in der AddArtikel-Klasse eine Setter-Methode für die ObsList erstellen und dann entsprechend die bereits vorhandene ObsList übergeben um diese zu bearbeiten bzw. Daten hinzuzufügen.

Gruß
TB94
 

Jak111

Mitglied
Ich würde in der AddArtikel-Klasse eine Setter-Methode für die ObsList erstellen und dann entsprechend die bereits vorhandene ObsList übergeben um diese zu bearbeiten bzw. Daten hinzuzufügen.

Sorry wenn ich einfach zu dumm bin das zu kapieren, aber wie übergebe ich die vorhandene ObsLis ?

Hoffe du kannst mir helfen:)!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
M JavaFX TableView nur erste Zeile editable machen und gelb markieren AWT, Swing, JavaFX & SWT 0
Encera TableView Zeilen als Spalten im SceneBuilder AWT, Swing, JavaFX & SWT 0
T TableView Button onAction AWT, Swing, JavaFX & SWT 3
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
izoards JavaFX TableView mit Array Inhalt füllen AWT, Swing, JavaFX & SWT 1
A Mit JavaFX einzelne Zeilen in TableView farbig markieren AWT, Swing, JavaFX & SWT 5
I JavaFX Zellen in Tableview editieren AWT, Swing, JavaFX & SWT 0
A TableView updatet sich nicht AWT, Swing, JavaFX & SWT 3
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
W TableView füllen AWT, Swing, JavaFX & SWT 18
missy72 JavaFX TableView / IconView mit MousEvent AWT, Swing, JavaFX & SWT 7
missy72 JavaFX Performance / ImageView in TableView über TimeLine AWT, Swing, JavaFX & SWT 1
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
T TableView Zeilen einfärben AWT, Swing, JavaFX & SWT 13
T TableView über Methode befüllen AWT, Swing, JavaFX & SWT 10
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
B JavaFX TableView-Zellen sollen automatisch so groß wie der größte Inhalt sein AWT, Swing, JavaFX & SWT 6
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
S Alternative JavaFX TableView AWT, Swing, JavaFX & SWT 1
L JavaFX Tableview row callback AWT, Swing, JavaFX & SWT 0
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
P JavaFX TableView Zelle markieren AWT, Swing, JavaFX & SWT 3
L JavaFX Tableview Datamodel AWT, Swing, JavaFX & SWT 2
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
J TableView Update/Refresh CPU AWT, Swing, JavaFX & SWT 2
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
J Tableview - kann man mit Enter die Zellen wechseln AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
M TableView + Datenbank Aktualisierung AWT, Swing, JavaFX & SWT 4
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
L JavaFX TableView Column Sortierung AWT, Swing, JavaFX & SWT 1
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit Aktionenbuttons AWT, Swing, JavaFX & SWT 1
C JavaFX Edit TableView in Verbindung mit SceneBuilder AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
J SceneBuilder TableView Checkbox AWT, Swing, JavaFX & SWT 1
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
robinab JavaFX TableView column resize nach setItems() AWT, Swing, JavaFX & SWT 0
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
S JavaFx - ausgewählte Rows in Arraylist (Tableview) AWT, Swing, JavaFX & SWT 4
S JavaFX - Populate TableView AWT, Swing, JavaFX & SWT 2
N JavaFX TableView aus Map AWT, Swing, JavaFX & SWT 2
B JavaFX TableView aus Collection befüllen AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
zhermann TableView die zweite AWT, Swing, JavaFX & SWT 7
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
E JavaFX TableView mit Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 5
zhermann TableView wird nicht gefüllt AWT, Swing, JavaFX & SWT 14
M JavaFX JavaFX ResultSet in TableView ausgeben AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
K JavaFX Message in TableView AWT, Swing, JavaFX & SWT 2
H TableView mit variabler Anzahl Spalten AWT, Swing, JavaFX & SWT 2
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
L JavaFX TableView mit Excelfunktion AWT, Swing, JavaFX & SWT 1
D JavaFX TableView AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit XYChart verbinden AWT, Swing, JavaFX & SWT 3
blazingblade JavaFX Tableview Clock Column update AWT, Swing, JavaFX & SWT 5
P JavaFX, TableView und Datenbank AWT, Swing, JavaFX & SWT 4
K TableView: 'Komplexes' Object AWT, Swing, JavaFX & SWT 11
L JavaFX TableView background transparent machen AWT, Swing, JavaFX & SWT 7
F TableCell aus TableView holen AWT, Swing, JavaFX & SWT 8
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
M Befüllung der einzelnen Zeilen des TableView AWT, Swing, JavaFX & SWT 3
N JavaFX TableView füllt nicht das gesamte ScrollPanle aus AWT, Swing, JavaFX & SWT 2
M JavaFX TableView & CSS, Rand um Tabellenkopf entfernen AWT, Swing, JavaFX & SWT 3
L JavaFX ListView oder TableView Style überschreiben? AWT, Swing, JavaFX & SWT 6
J JavaFX TableView - Höhe der Zeilen AWT, Swing, JavaFX & SWT 3
L JavaFX TableView mit Attributs der Modellreferenzerierung für die Spalte AWT, Swing, JavaFX & SWT 3
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
Z JavaFX TableView cellValueFactory für Arrays AWT, Swing, JavaFX & SWT 2
E JavaFX TableView mit Rechtsklick Zelle auswählen AWT, Swing, JavaFX & SWT 8
C (JavaFX 8) SQLite Datenbank in einem TableView darstellen AWT, Swing, JavaFX & SWT 2
D JavaFX TableView bleibt leer. AWT, Swing, JavaFX & SWT 8
M JavaFX TableView nach Spalte sortieren AWT, Swing, JavaFX & SWT 1
P JavaFX Dynamische TableView AWT, Swing, JavaFX & SWT 14
V Java FX POJO aus Datenbank in FX TableView / Best Practice AWT, Swing, JavaFX & SWT 0
P JavaFX TableView Item hinzufügen AWT, Swing, JavaFX & SWT 20
W JavaFX TableView frage AWT, Swing, JavaFX & SWT 5
M JavaFX Tutorial zu Tableview AWT, Swing, JavaFX & SWT 5
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben