Datenübergabe von einem Unterformular zum Hauptformular

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Ich brauche mal Hilfe...

Folgendes ist gegeben:
Ein Hauptformular ruft ein weiteres Formular auf (neues Frame), wo der Benutzer Daten eingeben kann.
Sagt der Benutzer nun, das er fertig ist, dann sollen die Eingaben an das Hauptformular weitergereicht werden.

Welche Möglichkeiten habe ich in Java, um das zurealisieren?


Danke im vorraus
 
S

SlaterB

Gast
JSP & Servlets bei Swing? ;)

hier kann man wohl nur allgemein von einem Informationsübergabe-Problem reden,

ganz allgemein:
bevor das Unterframe verloren geht, muss es eine Operation am Oberframe rufen und alle relevanten Infos übergeben,
dafür braucht es (z.B. bei der Erzeugung übergeben) eine Referenz auf das Oberframe
 
G

Gast

Gast
Genau sowas in der Richtung, oder kann man das mit selbst erstellten Ereignisse machen?

Achso, es handelt sich hier nicht um ein Applet
 

The_S

Top Contributor
Applet? Wer hat denn hier von einem Applet geredet?

Natürlich kannst du selber Ereignisse "machen". Dazu brauchst du einen eigenen Listener und eine Methode in deiner Klasse, die die Listener auflistet. Soll jetzt ein Event gefeuert werden rufst du die entsprechende Methode aus deinem listener interface auf. Soweit klar oder brauchste n Beispiel?
 
G

Gast

Gast
Da ich in Java Anfänger bin, wäre mir ein Beispiel hilfreich
Danke!
 

The_S

Top Contributor
Code:
public interface MeinListener {

   public void esHatSichWasGetan(MeinEvent evt);
}

Code:
public class MeinEvent {

   private Object source = null;
   private String command = null;

   public void setSource(Object obj) {
      source = obj;
   }

   public void setCommand(String str) {
      command = str;
   }

   public Object getSource() {
      return source;
   }

   public String getCommand() {
      return command;
   }
}

Code:
public class TestClass {

   private ArrayList<MeinListener> listener = null;

   public TestClass() {
      listener = new ArrayList<MeinListener>();
   }

   public void addMeinListener(MeinListener ml) {
      listener.add(ml);
      MeinEvent evt = new MeinEvent();
      evt.setSource(this);
      evt.setCommand("Ein neuer Listener wurde hinzugefügt");
      fireUpdate(evt);
   }

   public void removeMeinListener(MeinListener ml) {
      listener.remove(ml);
   }

   private void fireUpdate(MeinEvent evt) {
      for (MeinListener ml : listener) {
         ml.esHatSichWasGetan(evt);
      }
   }
}

Code:
public class Test() {

   public static void main(String[] args) {
      TestClass t = new TestClass();
      t.addMeinListener(new MeinListener() {
         public void esHatSichWasGetan(MeinEvent evt) {
            System.out.println(evt.getCommand());
         }
      });
   }
}
 
S

SlaterB

Gast
wann und wie das Fenster geöffnet und geschlossen wird usw. kannst nur du wissen,
bisschen Code wäre hilfreich, aber nur < 50 entscheidene Zeilen,
nicht dein ganzes Projekt..,

der Aufruf ist ganz simpel:
oberFrame.verarbeiteDatenAusUnterFrame(daten1,daten2, ..);

edit:
kein Wunder das Java lernen so schwer ist, wenn die Leute gleich mit Listenern ankommen ;)
 
G

Gast

Gast
Hobit: Danke für das Beispiel!
SlaterB: hmmm.. jetzt bin ich mal ganz verwirrt ;-)
der Aufruf der Unterform lautet so:

private void btnAdd_Clicked(java.awt.event.ActionEvent evt)
{
AddItem addItem = new AddItem( "Neu" );
addItem.setVisible( true );
}
 

The_S

Top Contributor
SlaterB hat gesagt.:
edit:
kein Wunder das Java lernen so schwer ist, wenn die Leute gleich mit Listenern ankommen ;)

Hm, ich hab nur irgendwo was gelesen von wegen "Kann man auch eigene Listener schreiben?" Darauf hab ich geantwortet und auf Wunsch noch ein Beispiel gepostet. Um was es letztendlich in diesem Thread geht ... kA :oops: . Ich wasche meine Hände in Unschuld :lol:
 
S

SlaterB

Gast
na gut,
kein Wunder das Java lernen so schwer ist, wenn die Leute gleich nach Listenern verlangen ;)

@Gast:
nur verwirrt sein reicht nicht,
von Hobbit hast du ja schon ein recht ausführliches Beispiel, vielleicht hilft das,
ansonsten genauer fragen/ Problem genauer beschreiben usw.
 
G

Gast

Gast
Ich möchte ja nur von einem Unterformular Daten zum Hauptformular weiterreichen...

Unter C# macht man das halt mit eigenen Events.
Wie man sowas unter Java macht, weiss ich leider nicht...

Also, ich nehme gerne die einfache und typische Lösung dafür ;-)
 
S

SlaterB

Gast
aha, eine neue Antwort von dir,
dann kommt nun eine neue Antwort von mir ;)

das einfachste ist ein Operationsaufruf:
oberFrame.verarbeiteDatenAusUnterFrame(daten1,daten2, ..);

der komplizierte Weg, der das gleiche macht, ist das Beispiel von Hobbit,

so, das hat den Thread weitergebracht ;)
 
G

Gast

Gast
nicht schlecht! :)

jetzt die nächste Frage.
Kannst Du mir ein Beispiel geben... wie das Ausschaut?
 
S

SlaterB

Gast
könnte ich schon, mag ich aber nicht,
gib doch du ein Beispiel deines Codes wie es bisher ist und nicht funktioniert,
mach du dir die Arbeit ;)

und überlege was daran nicht geht,
ich helfe dir dann gerne beim Denken auf die Sprünge,
 

hupfdule

Top Contributor
BTW: Wenn du C# kannst, dann ist das aber kein großer Sprung zu Java. Betrachte die Frames halt als das, was sie sind. Objekte. Und lass einfach die Objekte miteinander kommunizieren.
 
G

Guest

Gast
sorry, weiss jetzt gerade nicht weiter...
mit dem Operationsaufruf...
oberFrame.verarbeiteDatenAusUnterFrame(daten1,daten2, ..);

Das oberFrame weiss nicht, wann das unterFrame fertig ist...
Also muss ja das unterFrame bescheid sagen.

Ich weiss jetzt nicht, wie ich aus dem unterFrame (wenn es fertig ist) eine Methode aus dem oberFrame aufrufen soll, um dann die Daten weiterzureichen... das habe ich bis jetzt noch nie so gemacht...

Also ich gehe wie folgt vor:

Code vom oberFrame:
Code:
private void btnAdd_Clicked(java.awt.event.ActionEvent evt)
    { 
      AddItem addItem = new AddItem( "Neu" );     
      addItem.setVisible( true );      
    }

Code vom unterFrame:
Code:
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;

public class AddItem extends JFrame
{    
    public static void main(String args[]) 
    {
      new AddItem( "Neu" );
    }   
   
    public AddItem( String title ) 
    {
      super( title );
      initComponents();
      this.setSize( 400, 200 );
    }
       
    private Container content;
    private JPanel panel1;
    private JLabel lblKey;
    private JTextField txtKey;
    private JLabel lblText;
    private JTextField txtText;
    private JButton btnAdd;
    
    private void initComponents() 
    {        
        setDefaultCloseOperation( javax.swing.WindowConstants.DISPOSE_ON_CLOSE );

        content = this.getContentPane();
        panel1 = new JPanel();
        panel1.setLayout( null );
        lblKey = new JLabel( "Key" );
        lblKey.setBounds( 2, 2, 56, 20 );
        panel1.add( lblKey );
        txtKey = new JTextField();
        txtKey.setBounds( 2, 26, 80, 20 );
        panel1.add( txtKey );
        lblText = new JLabel( "Text" );
        lblText.setBounds( 2, 50, 56, 20 );
        panel1.add( lblText );
        txtText = new JTextField();
        txtText.setBounds( 2, 74, 80, 20 );
        panel1.add( txtText );
        btnAdd = new JButton( "Neu" );
        btnAdd.setBounds( 2, 98, 56, 20 );
        btnAdd.addActionListener(new java.awt.event.ActionListener()
        {
          public void actionPerformed( java.awt.event.ActionEvent evt )
          {
            btnAdd_Clicked( evt );
          }
        });
        panel1.add( btnAdd );
        this.content.add( panel1 );
    }
    
    private void btnAdd_Clicked(java.awt.event.ActionEvent evt)
    { 
      TreeValues treeValues = 
       new TreeValues( txtKey.getText(), txtText.getText() );

        /* hier sollen die daten an das oberFrame weitergereicht werden */                    
    }
    
   
}
 

hupfdule

Top Contributor
Dein Zustand "Unterframe ist fertig ist doch dann der Fall, wenn der Benutzer den Button Add klickt. Den ActionListener dafür hast du ja auch schon. Und dort drin, wo du deinen Kommentar stehen hast
Code:
/* hier sollen die daten an das oberFrame weitergereicht werden */
, rufst du die Methode des Oberframes auf.... Ganz simpel...

Dabei wird dir allerdings auffallen, dass du (zumindest in obigem Code) keine Referenz auf Oberframe hast. Die brauchst du noch. Das machst du am besten dann, wenn der Oberframe den Unterframe instanziert.

Was mir noch auffällt: Du hast hier eine main(String[]) Methode. Heißt das, du startest direkt Unterframe, ohne dass Oberframe zum Zug kommt? Dann sieht die Sache wieder anders aus.
 
S

SlaterB

Gast
genau

Code:
private void btnAdd_Clicked(java.awt.event.ActionEvent evt)
    {
      TreeValues treeValues =
       new TreeValues( txtKey.getText(), txtText.getText() );

        oberFrame.tueWas(daten);
    }

+ endlich noch mal ein bisschen geschenkt:
Konstruktor ändern

Code:
private OberFrame oberFrame;
public AddItem( String title,OberFrame  oberFrame )
    {
      super( title );
      this.oberFrame = oberFrame;
      initComponents();
      this.setSize( 400, 200 );
    }
 
G

Gast

Gast
hmmm... so simple... manchmal hat man echt ein brett vorm kopf ;-)
ich werde mir das sofort anschauen und umbauen.
danke!
 
G

Gast

Gast
vielen dank für die Hilfe!
Funktioniert perfekt!
Manchmal sieht man den Wald vor lauter Bäumen nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
G Datenübergabe per URL Java Basics - Anfänger-Themen 2
H Einfach Datenübergabe Java Basics - Anfänger-Themen 4
W ein JLabel oder JTextfield in einem Canvas-Kontext einbringen : geht das ? Java Basics - Anfänger-Themen 4
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
I Dateien in einem .war - File durchgehen? Java Basics - Anfänger-Themen 1
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
U Char zu einem String machen Java Basics - Anfänger-Themen 1
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
Kotelettklopfer Mehrere Projekte in einem Git verwalten Java Basics - Anfänger-Themen 10
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Auswahl bei einem Videoverleih limitieren Java Basics - Anfänger-Themen 4
B Quicksort in Verbindung mit einem Projekt Java Basics - Anfänger-Themen 1
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
O Java Weinachtsbaum in einem Bilderramen Java Basics - Anfänger-Themen 5
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
Y Wie greift man auf die Knoten in einem Binärbaum zu? Java Basics - Anfänger-Themen 5
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
J Lösungen zu einem Lückentext finden Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben