Daten aus einem JDialog einem JFrame übergeben

Status
Nicht offen für weitere Antworten.

L-ectron-X

Gesperrter Benutzer
Moin!

Ich habe einen JFrame programmiert, in dem via Menü ein JDialog geöffnet wird.
In diesem Dialog werden verschiedene Daten in JTextField's eingegeben.
Nun möchte ich diese Daten nach einem Klick auf einen OK-Button in diesem Dialog an eine JTable zur Anzeige übergeben, die in dem o.g. JFrame eingebettet ist.
Weiß jemand wie man das anstellt?
Meine bisherigen Überlegungen zielten auf einen JDialog, der als innere Klasse in meiner JFrame-Klasse programmiert ist.

Danke für Eure Hilfe!

L-ectron-X
 
R

Roar

Gast
äh.. wo is das problem? hast du ne eigne klasse die von JDialog erbt? du könntest den doch einfach in eine metzhode reinhauen... naja egal. ansonsten speicher die eingegeben werte halt als instanzvariablen von deiner klasse, und per getValues() oder so holst du sie dir aus dem aufrufendem programm...

wenn das nicht hilft dann schieb mal n bisschen code rüber...
 
G

Guest

Gast
Ja, ich hatte zunächst eine eigene Klasse (ohne main-Methode) programmiert, die von JDialog abgeleitet ist.
Das Problem dabei ist aber, dass beim Schließen des Dialoges per OK-Button oder WindowEvent auch eingegebene Daten mit dem Dialog zerstört werden. Nun weiß ich nicht, wie ich die Daten aus den Textfeldern in meine Tabelle in den JFrame retten kann. Instanzvariablen speichern und abholen? Beide Klassen können nur einseitig miteinander kommunizieren. Der JFrame ist lediglich der Owner des JDialogs und kennt seinen Namen. Ich habe auch schon die Textfeld-Eingaben in einem neuen Objekt zusammengefasst, das man aus dem JDialog per Rückgabe abholen könnte. Aber das geht auch nicht. Der JFrame weiß ja nicht, wenn alle Daten im JDialog zur Abholung bereit sind - sprich der OK-Button geklickt wurde.
So kam ich dann darauf, den Dialog innerhalb des JFrames zu programmieren. Nur ist das leider nicht sonderlich wiederverwendbar.
 
R

Roar

Gast
da der aktuelle thread angehalten wird wenn du einen modalen dialo erstellst sollte folgendes gehen:

Code:
class MyDialog extends JDialog implements ActionListener {
  private JTextField tf = new JTextField();
  private String text = "";
  public MyDialog(JFrame owner) {
    super(owner);
    // blabla
  }

  public void actionPerformed(ActionEvent e) {
    text = tf.getText();
  }

  public String getText() {
    return text;
  }
}

wenn das nicht geht dann würd ich einfach eine statische methode in die Klasse reinschieben die dir den dialog macht und die daten zurückgibt (wie JOptionPane)
 

L-ectron-X

Gesperrter Benutzer
OK, ich habe mir nach einer Anregung eine Lösung zusammen gebaut, die auch noch wieder verwendbar ist.
Eine auch funktionierende, aber eben nicht wieder verwendbare Variante wäre wie gesagt, den JDialog als innere Klasse im JFrame zu implementieren. Innere Klassen haben bekanntlich Zugriff auf alle Instanzvariablen der sie umgebenden Klasse.
Hier nun die elegantere Variante mit Wiederverwendbarkeit.

Zunächst braucht man ein Interface, welches nur eine Methode implementiert:
Code:
public Interface ResultProcessor {
    public void processResult(javax.swing.JDialog source, Object obj);
}
Dieses Interface implementiert man in einem JFrame (Hauptprogramm)...
Code:
public class MainFrame extends javax.swing.JFrame
    implements ResultProcessor {
    ...
    //Methode zum Öffnen des Eingabe-Dialogs
    private void openMeinEingabeDialog() {
        new MeinEingabeDialog(this, true).show();
    }
    ...
...und damit auch die Methode processResult() aus dem Interface ResultProcessor
Code:
public void processResult(javax.swing.JDialog source, Object obj) {
    if(source instanceof MeinEingabeDialog)
    result = (MeinObject)obj;
    //result ist eine Instanzvariable, obj wird ins erwartete Object gecastet und an result übergeben
    ...
Danach nehme ich in meinem Fall das result-Object mit seinen Methoden auseinander und "bestücke" damit die JTable. Fehlt nur noch die Implementation in meinem JDialog. Und die sieht so aus:
Code:
public class MeinEingabeDialog extends javax.swing.JDialog {
    public MeinEingabeDialog(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        ...
    }
    ...
    //Event-Methode die bei Klicken auf den OK-Button aufgerufen wird
    private void btn_fertigClicked(java.awt.event.ActionEvent ae) {
    ...
        setVisible(false); //JFrame unsichtbar machen

        /*Da ein ResultProcessor-Object (MainFrame implementiert ResultProcessor)
        der Owner des JDialogs ist, wird hier die Rückgabe der getParent()-Methode
        auf ein ResultProcessor-Object gecastet. Damit erhalten wir den Eigentümer
        (MainFrame) des JDialogs und können nun mit diesem Object die
        processResult()-Methode aufrufen.*/
        ((ResultProcessor)getParent()).processResult(this, result);

        dispose(); //ab Java 1.5 deprecated
    }
    ...
}
Ich hoffe, dass dies dem einen oder anderen einmal helfen kann.

L-ectron-X
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
A Daten aus einem Frame werden im nächsten nicht gesehen AWT, Swing, JavaFX & SWT 17
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Daten von Controller zu Controller übertragen AWT, Swing, JavaFX & SWT 7
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
L Daten bearbeiten ohne GUI zu blockieren - daten haltung/zurück geben AWT, Swing, JavaFX & SWT 15
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
T JavaFX Model Daten übergeben AWT, Swing, JavaFX & SWT 4
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
M Java FX Daten an Controller übergeben AWT, Swing, JavaFX & SWT 3
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
S SWT In Listen den Einträgen Daten zuordnen AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
F Swing JTable: Daten voreinstellen AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
M Swing Daten von JPanel zu JFrame senden AWT, Swing, JavaFX & SWT 13
C Swing JTable Daten einfügen AWT, Swing, JavaFX & SWT 6
Ollek IndexOutOfBoundsException bei neuen Daten in JTable AWT, Swing, JavaFX & SWT 13
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
A Swing(Daten zugreifen) AWT, Swing, JavaFX & SWT 25
S JComboBox - veränderliche Daten AWT, Swing, JavaFX & SWT 6
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing jTable Daten unsichtbar AWT, Swing, JavaFX & SWT 12
T JTree Daten in DB schreiben am besten SQL AWT, Swing, JavaFX & SWT 21
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
T Daten der gesamten Woche anzeigen AWT, Swing, JavaFX & SWT 2
D Problem mit JFileChooser -> Daten werden mit anführungsstriche in JTable geschrieben AWT, Swing, JavaFX & SWT 8
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
K TableModel mit Daten aus Datenbank füllen AWT, Swing, JavaFX & SWT 7
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
L Swing Daten in JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H Swing Tabelle nach Klick auf Button mit Daten füllen? AWT, Swing, JavaFX & SWT 2
B Swing JList Daten löschen AWT, Swing, JavaFX & SWT 13
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
A SWT: Daten in Raster mit Gitternetzlinien darstellen AWT, Swing, JavaFX & SWT 7
C Swing JTextField-Daten über mehrere Dialoge AWT, Swing, JavaFX & SWT 18
K TableModel Daten übergeben AWT, Swing, JavaFX & SWT 9
Milady Swing Änderung von Daten mit sql AWT, Swing, JavaFX & SWT 2
J Daten aus einer Textdatei in ArrayList holen AWT, Swing, JavaFX & SWT 9
X Swing Daten aus Vector ins TableModel ?? AWT, Swing, JavaFX & SWT 12
T Swing Liste von Daten anzeigen AWT, Swing, JavaFX & SWT 4
S Swing Daten aus Datenbank in JTable AWT, Swing, JavaFX & SWT 2
E JCombobox mit Daten aus DB füllen AWT, Swing, JavaFX & SWT 9
L Daten werden in JTable nicht angezeigt:( AWT, Swing, JavaFX & SWT 6
Milady Annzeigen alle Daten aus der Tabelle AWT, Swing, JavaFX & SWT 6
P Swing Liste von Daten auf JFrame AWT, Swing, JavaFX & SWT 6
E Daten aus sortierter Tabelle lesen AWT, Swing, JavaFX & SWT 2
X Swing JList -> Daten anders darstellen als im Model hinterlegt -> möglich ? AWT, Swing, JavaFX & SWT 9
X Doppelte Daten in DefaultListModel unterbinden AWT, Swing, JavaFX & SWT 3
ModellbahnerTT SWT Daten zur nächsten WizardPage senden AWT, Swing, JavaFX & SWT 4
J Daten in JTable nach Sortierung auslesen AWT, Swing, JavaFX & SWT 2
hdi Swing JTable & Filtern: Daten nicht in der View AWT, Swing, JavaFX & SWT 2
S JTable Bug - eingegebene Daten werden falsch geparst :( AWT, Swing, JavaFX & SWT 4
L AWT Daten vom Dialog an Frame senden AWT, Swing, JavaFX & SWT 3
hdi Swing JTable: Löschen vom Daten im Model AWT, Swing, JavaFX & SWT 7
U JTable mit Daten aus einer HashMap füllen AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen


Oben