Zum Inhalt springen

Zwischen Frame und Klasse kommunizieren...


LukeGee

Empfohlene Beiträge

Hallo.

Folgendes:

Ich habe eine GUI, also z.B. ein Frame, in dem man verschiedene Angaben macht. Diese werden dann an eine Klasse übergeben, die diese z.B. auswertet.

Diese Klasse, soll dann die ausgewerteten Daten wieder an das Frame zurückgeben, um dort angezeigt zu werden.

Ich hatte das so versucht:

(von der klasse an das frame daten zurückgeben)


Frame f = new Frame();

f.showData(........);

Habe also im Frame eine Methode gemacht, die die Daten dann anzeigt. Habe wie oben gezeigt in der KLasse diese Methode mit den entsprechenden Parameter aufgerufen.

Es kann ja aber irgendwie nicht funktionieren, da mit "Frame f = new....." ja eine neue Instanz von Frame initialisiert wird, und nicht auf die aktuelle angewendet.

Wie bekomm ich das also hin, dass ich Daten vom Frame an eine KLasse übergebe, und diese dann wieder zurück zum Frame um dort angezeigt zu werden.

MfG Lukas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du könntest zum Beispiel die Instanz des Frames als Parameter an die Methode übergeben und dann von innerhalb der Methode die Werte an den Frame geben.

Eine andere Möglichkeit ist, die Methode mit einem Rückgabewert zu versehen, mit dem du die Rechenergebnisse (oder was auch immer) zurückgibst. Diese kannst du dann im Frame anzeigen lassen.

Ich persönlich würde die zweite Möglichkeit wählen. Du hast so die Möglichkeit, die Bearbeitungs-Klasse auch mit anderen Frames zu verwenden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, danke. Ich denke ich Grundprinzip verstehe ich, was du meinst.

Gibt es vielleicht ein Codebeispielt dafür ? Ich bin noch Anfänger und kann es mir so vielleicht besser vorstellen.

also z.B: in der Klasse zum berechnen:


public int Bla(int a, int b {

int c;

c = a*b;

return c;

}

Aber wie mache ich dann, dass c im Frame angezeigt wird ? Also im frame rufe ich die methode ja so auf:

Klasse c = new Klasse();

c.Bla(5,3);

Aber wie zeige ich dann c an ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

edit 2:

hm, ich hab ne vermutung. sag mir obs richtig ist :D


//aufruf und anzeigen der methode bzw. das ergebnis der berechnungsklasse im frame

...eventhandler bei buttonklick und so weiter....

Klasse c = new Klasse();

label.setText(c.Bla(5,3));

würde das so gehen ? Also die method eim prinzip bei setText aufrufen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, danke. Und wie ist es, wenn eine Methode mehrere Wrte zurückgibt ? (geht das überhaupt ? )

es geht immer nur ein rückgabewert.

- du kannst ein array zurückgeben [public int[] blubb()]

- du kannst sie in ne klasse stecken [public MyClassWithObjects blubb()]

- du gibst ein Vector zurück, der frißt alles [public Vector <Object> blubb()]

bigredeyes

p.s. google mal nach MVC (model view controller)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke.

Habe dann nochmal eine Frage:

Wie zeige ich ein Array in einem TextPane an ?


float[ ] result = c.Viereck(

                            Float.parseFloat(this.jTextField1.getText()),

                            Float.parseFloat(this.jTextField2.getText()),

                            Float.parseFloat(this.jTextField4.getText()));


                    this.jTextField4.setText(String.valueOf(result));

Hab ich probiert. Aber er gibt dann immer irgendwas undfinierbares aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen


float[] viereck(){

     //array anlegen. das geben wir nachher zurück

     float[] arr = new float[4];

     //array voll machen mit 4 floats

     arr[0] = Float.parseFloat(this.jTextField1.getText());

     arr[1] = Float.parseFloat(this.jTextField2.getText());

     arr[2] = Float.parseFloat(this.jTextField3.getText());

     arr[3] = Float.parseFloat(this.jTextField4.getText());

     //array zurückgeben

     return arr;

}

bigredeyes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...