Tabelleninhalt aktualisieren

MrSnake

Mitglied
Hallo Leute!

Ich benötige mal Unterstützung durch die Profis hier ;)

Meine Situation:
Klasse 1 (Main) und Klasse 2 (Add) - beide extends JFrame
Main zeigt ein Fenster mit einer Tabelle, darauf u.a. ein Button der ein Fenster von Add aufruft.
Add bietet die Eingabemöglichkeit für neue Datensätze und hat u.a. einen "Speichern" Button.

Das Problem:
Wenn ich in Add auf Speichern drücke, soll sich das Add Fenster schließen und die Tabelle in Main soll sich aktualisieren - ich habe aber keinen Schimmer wie ich das realisieren soll...

Sobald Main geöffnet wird, lädt sich der Tabelleninhalt durch eine Methode "fillTabelle();" - diese Methode kann ich aber scheinbar nicht aus Add heraus aufrufen.

Bei Bedarf kann ich jederzeit mehr Quelltext zur Verfügung stellen!

Vielen Dank schonmal für eventuelle Hilfe ;)
 

JStein52

Top Contributor
Die Methode fillTabelle(); holt sich ja ihre Daten irgendwo her. Und genau da muss der ActionListener der den Add-Button bedient die Daten die hinzugefügt werden sollen schreiben. Viel mehr lässt sich dazu ohne Einzelheiten zu kennen nicht sagen.
 

MrSnake

Mitglied
Vielleicht verstehe ich es falsch - oder habe es missverständlich formuliert...

Die fillTabelle(); Methode muss entweder irgendie aufgerufen werden können im Add-Frame sobald ich auf den Speichern Button geklickt habe.

ODER

Ich muss irgendwie in der Main-Klasse prüfen ob das Add Fenster geschlossen wurde um dort die vorhandene Methode erneut auszuführen.
 

Joose

Top Contributor
Ja dazu hat JStein52 dir schon eine Möglichkeit genannt: Du übergibst dem Objekt deiner Add Klasse das Objekt deiner Main Klasse. Dann kannst du auf diesem Objekt die entsprechende Methode fillTabelle() aufrufen.
 

MrSnake

Mitglied
Ich hab es nun hinbekommen die Methode aus Main - in Add aufrufbar zu machen.

Allerdings bekomme ich dann eine NullPointerException - daher direkt die nächste Frage.
Kann es daran liegen, dass in der Methode Variablen verwendet werden die in Add selbst nicht deklariert sind?

Alle Varieblen die dort vorkommen habe ich in Main aktuell auf public stehen.
 

Joose

Top Contributor
Ich hab es nun hinbekommen die Methode aus Main - in Add aufrufbar zu machen.
Wie schaut der Code dazu aus?

Allerdings bekomme ich dann eine NullPointerException - daher direkt die nächste Frage.
Dann ist eine Variable nicht initialisiert, der StackTrace verrät dir genau in welcher Zeile der Fehler passiert. Dort kannst du ansetzen und debuggen um zu kontrollieren welche Variable null ist.

Kann es daran liegen, dass in der Methode Variablen verwendet werden die in Add selbst nicht deklariert sind?
Nein das kann nicht der Grund sein.

Alle Varieblen die dort vorkommen habe ich in Main aktuell auf public stehen.
Die Sichtbarkeit von Instanzattributen auf public zu setzen sollte man vermeiden!
 

MrSnake

Mitglied
Momentan sieht das ganze im ganz groben so aus:

Java:
public class Main extends JFrame  {

   Variablendeklarationen;

   public Main() {
     setTitle("Main");
     ...weitere Standardangaben
     fillTroopList();
   }

   public void fillTabelle() {
     ...lese aus Datei
     ...fülle TableModel
     Tabelle.setModel(TableModel);
   }

   private void ButtonNeuerDatensatzActionPerformed(ActionEvent evt) {
     Add hinzufügen = new Add();
   }
}

-----------------------------------------------------------
Java:
public class Add extends JFrame  {
   Main bindeMichEin;

   private void speichern() {
     ...speichere in Datei
   }

   private void ButtonSpeichernActionPerformed(ActionEvent evt) {
     speichern();
     bindeMichEin.fillTabelle();
   }
}

Das ganze wird zumindest erstmal nicht als Fehler angekreidet - beim Debuggen wird die speichern Funktion komplett abgearbeitet und sobald ich auf "bindeMichEin.fillTabelle();" komme kracht es mit "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException". Die Funktion fillTabelle(); wird beim Start der Main-Datei aber fehlerfrei abgearbeitet und alle Daten werden angezeigt.

Ich hoffe das hilft ;)

--------------------
OT: Gibt es hier einen BB-Code oder etwas dergleichen um Code Zeilen darzustellen?
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
.... sobald ich auf "bindeMichEin.fillTabelle();" komme kracht es mit "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException". Die Funktion fillTabelle(); wird beim Start der Main-Datei aber fehlerfrei abgearbeitet und alle Daten werden angezeigt.

Ja du deklarierst zwar ein Instanzattribut von "Main" in deiner Add Klasse. Wo wird diese Attribut initialisiert? Wo übergibst du das Objekt von Main an das Objekt von Add?
Da das Attribut nicht initialisiert wird, fliegt natürlich eine NullPointer Exception.

OT: Gibt es hier einen BB-Code oder etwas dergleichen um Code Zeilen darzustellen?
Jap gibt es einfach, habs bei deinem Beitrag schon angepasst
[java] ... dein code ...[/java]
 

MrSnake

Mitglied
Kannst Du mir das ganze evtl mal an einem simplen Beispiel verdeutlichen?
Leider verstehe ich mit meinen bescheidenen Kenntnissen nicht was Du mir sagen möchtest mit "Wo übergibst du das Objekt von Main an das Objekt von Add?"

Müsste ich etwas schreiben wie:
Main bindeMichEin = new Main();

Oder bin ich da komplett verkehrt?

Edit: Ich hab auch etwas gelsen, dass ich das Add Fenster evlt von JDialog vererben sollte und nicht als JFrame. Das soll wohl irgendwie mit modularen Fenstern zusammenhängen (was auch immer das ist...)
 

Joose

Top Contributor
Leider verstehe ich mit meinen bescheidenen Kenntnissen nicht was Du mir sagen möchtest mit "Wo übergibst du das Objekt von Main an das Objekt von Add?"
Daher finde ich persönlich sollte man sich mit OOP beschäftigten bevor man in die UI Programmierung einsteigt ;)

Müsste ich etwas schreiben wie:
Main bindeMichEin = new Main();

Oder bin ich da komplett verkehrt?
Falsch, so würdest du ja ein komplett neues Main Objekt erstellen.

Edit: Ich hab auch etwas gelsen, dass ich das Add Fenster evlt von JDialog vererben sollte und nicht als JFrame. Das soll wohl irgendwie mit modularen Fenstern zusammenhängen (was auch immer das ist...)
Ob nun JFrame oder JDialog ist eigentlich egal. Das Problem hat nichts mit modal oder nicht modal zu tun.

Java:
   private void ButtonNeuerDatensatzActionPerformed(ActionEvent evt) {
     Add hinzufügen = new Add();
   }
}
Du erstellst hier ein neues Objekt deiner Klasse Add.
Diesem Objekt musst du im Konstruktor das aktuelle Main Objekt (this) als Parameter mitgeben.
Im Konstruktor von Add initialisierst du das Instanz Attribut "bindeMichEin" mit dem Parameter.
Schon referenziert "bindeMichEin" auf das korrekte Main Objekt.
 

MrSnake

Mitglied
Ok, nach einigen Änderungen u.a. auch in meiner fillTabelle(); Funktion klappt es endlich mit dem speichern und automatisch aktualisieren (repaint() und revalidate() war auch noch nötig...).

Nun habe ich aber noch einen weitere Sonderheit entdeckt.

Wenn ich das Tool nicht aus meiner IDE heraus starte - sondern über die *.jar Datei, dann werden die Umlaute nicht mehr korrekt aus der .txt Datei geladen und auch falsch gespeichert.
Was ich bisher gelesen habe zum Thema Zeichenkodierung war nicht sehr hilfreich.

Kann ich vor dem einlesen und abspeichern irgendwie den verwendeten Zeichensatz festlegen - oder muss ich da ganz anders herangehen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Über Button DB Tabelleninhalt löschen Java Basics - Anfänger-Themen 24
V in Java Den Tabelleninhalt einer DB anzeigen Java Basics - Anfänger-Themen 4
G Tabelleninhalt in Datei schreiben Java Basics - Anfänger-Themen 4
J Progressbar aktualisieren Java Basics - Anfänger-Themen 17
C Timer aktualisieren Java Basics - Anfänger-Themen 5
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
P WindowBuilder aktualisieren Java Basics - Anfänger-Themen 0
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
F Problem bei ImageIcon aktualisieren Java Basics - Anfänger-Themen 5
R Programm aktualisieren/refreshen Java Basics - Anfänger-Themen 7
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
M Methoden Methoden aktualisieren Java Basics - Anfänger-Themen 2
M Liste mit repaint aktualisieren Java Basics - Anfänger-Themen 1
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
G Input/Output Webseite Cache-Control: max-age=3 Öfters Aktualisieren? Java Basics - Anfänger-Themen 1
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
G Seite aktualisieren Java Basics - Anfänger-Themen 1
O JList aktualisieren während Dateieinlesung Java Basics - Anfänger-Themen 4
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
S Erste Schritte Gui aktualisieren Java Basics - Anfänger-Themen 5
M Variable aus einer anderen Klasse aktualisieren Java Basics - Anfänger-Themen 2
V JFrame aktualisieren Java Basics - Anfänger-Themen 6
M Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 10
M Erste Schritte Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 7
D JTable aktualisieren Java Basics - Anfänger-Themen 2
J Variablen Aktualisieren von Instanzvariablen Java Basics - Anfänger-Themen 14
J repaint() geht gar nicht; GUI aktualisieren Java Basics - Anfänger-Themen 10
Q Zeitanzeige aktualisieren Java Basics - Anfänger-Themen 7
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
R Threads GUI über Hintergrund-Thread aktualisieren Java Basics - Anfänger-Themen 6
F GUI JTextField aktualisieren Java Basics - Anfänger-Themen 3
L Zeit sekündlich aktualisieren Java Basics - Anfänger-Themen 7
J JLabels in Panel Aktualisieren Java Basics - Anfänger-Themen 5
E JList GUI aktualisieren? Java Basics - Anfänger-Themen 3
L Client aktualisieren Java Basics - Anfänger-Themen 6
Ollek ArrayList nach Datenbankeintrag aktualisieren Java Basics - Anfänger-Themen 4
U jTable aktualisieren Java Basics - Anfänger-Themen 5
B PacMan: Panel aktualisieren Java Basics - Anfänger-Themen 2
Dit_ Aktualisieren von mehreren Views Java Basics - Anfänger-Themen 2
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
J JTable aktualisieren wenn TableModel sich ändert Java Basics - Anfänger-Themen 6
F contentPane aktualisieren Java Basics - Anfänger-Themen 2
L JList Aktualisieren funktioniert nur Zufällig Java Basics - Anfänger-Themen 3
B JApplet aktualisieren Java Basics - Anfänger-Themen 2
N Aktualisieren JTable Java Basics - Anfänger-Themen 2
T JList aktualisieren Java Basics - Anfänger-Themen 12
T GUI aktualisieren Java Basics - Anfänger-Themen 6
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
C jframe bzw. jpanel aktualisieren Java Basics - Anfänger-Themen 13
E Textfeld aktualisieren Java Basics - Anfänger-Themen 3
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
G fenster aktualisieren Java Basics - Anfänger-Themen 2
Antoras Applet aktualisieren Java Basics - Anfänger-Themen 2
M Ausgabe aktualisieren/ Stoppuhr Java Basics - Anfänger-Themen 4
S Jpanel aktualisieren Java Basics - Anfänger-Themen 9
S JTable aktualisieren (nach Datenbank updade) Java Basics - Anfänger-Themen 14
S JTree aktualisieren Java Basics - Anfänger-Themen 4
M JTree aktualisieren Java Basics - Anfänger-Themen 3
K Datum mittels Thread aktualisieren Java Basics - Anfänger-Themen 6
G Bild aktualisieren Problem! Java Basics - Anfänger-Themen 2
G Liste in mehreren unabhängigen Frames aktualisieren. Java Basics - Anfänger-Themen 6
H Textarea aktualisieren Java Basics - Anfänger-Themen 2
V Menüeinträge und ähnliches aktualisieren (aus properties) Java Basics - Anfänger-Themen 10
M Aktualisieren eines JTables funktioniert nicht Java Basics - Anfänger-Themen 6
K Chart zur Laufzeit erstellen und aktualisieren Java Basics - Anfänger-Themen 2
M jTable aktualisieren Java Basics - Anfänger-Themen 5
H JTable richtig aktualisieren Java Basics - Anfänger-Themen 4
J schleife unterbrechen JTextArea aktualisieren Java Basics - Anfänger-Themen 8
W Kurse übers Internet aktualisieren Java Basics - Anfänger-Themen 6
G mehrere Frames nacheinander aktualisieren Java Basics - Anfänger-Themen 2
B JTable Werte aktualisieren Java Basics - Anfänger-Themen 2
G JList - aktualisieren Java Basics - Anfänger-Themen 6
S JTree aktualisieren bzw. komplett neu aufbauen Java Basics - Anfänger-Themen 6
F Aktualisieren einer einzelnen Zelle in JTable Java Basics - Anfänger-Themen 2
F Gebasteltet Fortschrittsanzeige: Aktualisieren Labels? Java Basics - Anfänger-Themen 4
F Aktualisieren einer Liste von einem entfernten Objekt aus. Java Basics - Anfänger-Themen 11
M JList Datenstring erweitern und JList aktualisieren Java Basics - Anfänger-Themen 5
D Applet im IE aktualisieren Java Basics - Anfänger-Themen 6
G JTable aktualisieren Java Basics - Anfänger-Themen 15
B GUI aktualisieren Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben