Variablenübergabe bei actionPerformed funktioniet nicht?

Status
Nicht offen für weitere Antworten.

Seraph

Aktives Mitglied
Hallo liebe Forumfreunde,

ich habe ein Problem mit Variablenrückgabe über actionPerformed(). Es soll über ein Eingabefeld ein String in eine Variable eingelesen werden, jedoch ist es mir nicht möglich die "variable" aus der Methode, anderen Methoden zu übergeben.
Ich habe es versucht mit:
"return variable"
mit "public static String"
mit "public String"

Gibt es hier keine einfache Lösung der Variablenübergabe??


Code:
public void actionPerformed(ActionEvent event)
{
    pfahtCSS = (JTextField)event.getSource();

    String variable = pfahtCSS.getText();
    System.out.println(variable);
}


Schöne Grüße
Meer.
 

Sky

Top Contributor
Du kannst nix zurückgeben. Die Signatur von actionPerformed ist vorgegeben. Du kannst aber woanders Daten setzen und damit weiterarbeiten, z.B:

Code:
meineKlasse.setMeineVariable( "variable");
 

Seraph

Aktives Mitglied
Vielen Dank für die schnelle Antwort Sky. Das Problem in meinem Programm ist das die Variablenübergabe über ein Textfeld erfolgen soll. Durch die Methode System.in in der CMD ist die Variablenübergabe möglich ... warum geht das nicht im Textfeld???? Also ich arbeite hart an dem Verständniss der Variablenübergabe, in anderen Sprachen gibt es die Globalen Variablen die es echt einfach machen, aber hier bei JAVA ... hmm da muss ich mich doch richtig gewöhnen ???:L

Gibt es eine Methode, die die Eingabe aus einem Textfeld in eine Variable umleitet???
 

Sky

Top Contributor
Was willlst Du eigentlich genau ?

Willst Du eine Variable mit Text aus einem Textfeld füllen ?

Oder willst Du Das Ergebnis aus actionPerformed weitergeben ? Fall ja, an "wen" ?
 

Seraph

Aktives Mitglied
Ich möchte gerne eine Variable mit dem Text aus einem Textfeld füllen und dann, in einer anderen Methode die gefüllte Variable in einer "if equals" Abfrage benutzen. Puhh... das ist ein Satz :D
 

Seraph

Aktives Mitglied
Sky hat gesagt.:
Du kannst nix zurückgeben. Die Signatur von actionPerformed ist vorgegeben. Du kannst aber woanders Daten setzen und damit weiterarbeiten, z.B:

Code:
meineKlasse.setMeineVariable( "variable");

...das hat irrgend wie nicht funktioniert, warum kommt hier kein Punkt hinter set??
 

Seraph

Aktives Mitglied
... das funktioniert bei mir nur in der actionPerformed() Methode wenn ich in einer anderen Methode:
Code:
String variable = pfahtCSS.getText();
diesen Code eingebe, dan geht es nicht. ???:L
 
R

Roar

Gast
Meerschweinchen hat gesagt.:
Sky hat gesagt.:
Die Methode, die die Variable braucht kann sie per JTextfield#getText auslesen !

oder soll anstelle des Punktes eine Raute ?????
wtf sollte da ein punkt oder schlimmer noch eine raute hin?
der code von sky funktinoiert natürlich nur, wenn du auch eine instanz von einer klasse mit dem namen "meineKlasse" und dadrin eine methode "setMeineVariable()" hast. das ist dir doch sicher klar, oder? :?

" String variable = pfahtCSS.getText(); " geht in anderen klassen natürlich nicht, weil dort pfahtCSS nicht bekannt ist.

guter tipp nr 1: wenn du pfad statt pfaht schreiben wüdest, könnten vielleicht auch hochdeutsch.sprechende leute die variablennamen nachvollziehen :autsch:
guter tipp nr 2: mach dich doch erstmal mit java vertraut bevor du mit gui programmierung anfängst
 

Seraph

Aktives Mitglied
Roar hat gesagt.:
Meerschweinchen hat gesagt.:
Sky hat gesagt.:
Die Methode, die die Variable braucht kann sie per JTextfield#getText auslesen !

oder soll anstelle des Punktes eine Raute ?????
wtf sollte da ein punkt oder schlimmer noch eine raute hin?
der code von sky funktinoiert natürlich nur, wenn du auch eine instanz von einer klasse mit dem namen "meineKlasse" und dadrin eine methode "setMeineVariable()" hast. das ist dir doch sicher klar, oder? :?

" String variable = pfahtCSS.getText(); " geht in anderen klassen natürlich nicht, weil dort pfahtCSS nicht bekannt ist.

guter tipp nr 1: wenn du pfad statt pfaht schreiben wüdest, könnten vielleicht auch hochdeutsch.sprechende leute die variablennamen nachvollziehen :autsch:
guter tipp nr 2: mach dich doch erstmal mit java vertraut bevor du mit gui programmierung anfängst

Hi Roar,
vielen Dank für die Verbesserung meiner Rechtschreibfehler. Sicherlich bin ich noch lange nicht soweit in Java ... bin gerade 4 Wochen Intensiv dabei ... an Anfang wolte ich mit Java Swing ein Game programmieren LOL ... das war irrgend wann im März doch habe ich es schnell verworfen mangels Grundkenntnisse in Objektorientierter Sprachen und Probleme mit dem Javacompiler. So fand ich die Zeit jetzt in den Ferien um mir selbst ein Craschkurs JAVA zu verpassen. Anhand von Guidos Javabuch (das war der beste Tip der mir ein super Einstieg gab) und Euren super Forum habe ich es tatsächlich geschaft eine Anwendung zu schreiben incl. einer JFrame basierter Oberfläche. Momentan arbeite ich an den Feinheiten.. jedoch die Grundlagen machen mir immer noch zu schaffen. Die Grundlagen werden noch dieses Jahr aufpoliert und dann bin ich soweit. ich würde mich dennoch freuen wenn man mir Unterstützung in diesem Forum gibt. Natürlich bemühe ich mich, den Neulingen in diesem Forum einfache Tips zu geben. Wie gesagt "Einfache"... In dem Javabuch bin ich gerade auf der seite 176 und kann leider aus Zeitmangel nicht weiterlesen. Somit switche ich zwischen den Themen die mich weiterbringen und mit Eurer Hilfe komme ich ganz gut durch. :wink:

Hier ist das Grundgerüst meiner Testanwendung.. wobei ich immer noch nicht den Text aus dem Textfeld an die ErstesGUI() methode übergeben kann.

Code:
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ErstetGUI
extends JFrame
implements ActionListener

{
   	public int anzArray = anzahlArray();
	public ErstetGUI()
	{
		super("Find your Friends playing Counterstrike Source");

		//hier ist der Haubteil des Programms *** diesen Teil hätte ich gerne Ausen ****
		//*** jedoch kann ich keine Globalen Variablen u. Arrays Deklarieren ...

		//hier kommt die Definition der Buttons, Labels, Textfeldes usw...
	}

    public static void main(String[] args)
    {
        ErstetGUI g = new ErstetGUI(); //hier wird es gestartet

    }

    public void addButtonListener(JButton b)
    {
        b.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent ae)
            {
                eingabe(ae.getActionCommand());
            }
        });
    }

    public void eingabe(String test)
    {
		// hier geshiet etwas wenn ein button gedrückt wird
    }

    public static int anzahlArray()
    {
		//hier wird die Arraygrösse definiert 
		return anzArray; //diese variablenübergabe verstehe ich! denn es ist nur ein wert
							// beim Array[] habe ich probleme bei der Übergabe
	}

	public void actionPerformed(ActionEvent event)
	{
		JTextField pfahtCSS = (JTextField)event.getSource();

		String variable = pfahtCSS.getText(); // und hier möchte ich die Variable an die "ErsteGUI()" Methode übergeben
		System.out.println(variable);

	}
}
 
B

Beni

Gast
Also ich (und Du wahrscheinlich auch) finde es extrem verwirrend, was Du machst. Was willst du überhaupt (der Masterplan, nicht das Detail hier :wink: )?

Mal ein paar Fakten (vielleich ist Dir etwas davon entgangen) :bae:
  • Eine Klasse ist der Bauplan, der Code, das Ding das auf der Festplatte herumliegt.
    Ein Objekt hingegen sind die Bytes die im RAM herumsausen. Man kennt die Bedeutung der einzelnen Bytes eines Obektes, weil die Bedeutung in dem Klassen-Code steht.
    Schnell gesagt: Klasse = Plan, Objekt = Wert.
  • ErsteGUI ist eine Klasse namens "ErsteGUI" *poff*
  • ErsteGUI() in ErsteGUI ist eine Ultrasepzialmethode: es ist ein Konstruktor. Der Konstruktor kann nur mit "new" aufgerufen werden, und da man ein Objekt nur einmal herstellen kann, kann auch der Konstruktor nur einmal aufgerufen werden.
  • Wenn du erstmals einen Instanz (ein Objekt) der Klasse "ErsteGUI" durch "new ErsteGUI()" erzeugt hast, kannst du die Variablen in diesem ErsteGUI-Objekt verändern.
  • Die actionPerformed-Methode wird erst lange nachdem ErsteGUI() fertig ist aufgerufen. Da man nichts in die Vergangenheit schicken kann, kannst du sowieso nix an ErsteGUI() schicken!

Soweit mal um dich zu demoralisieren :D

Weiter gehts:
  • Ein Objekt kann beliebig viele Methoden und Variablen besitzen. Ein Beispiel:
    Code:
    public class Socke{
      private boolean stinkend; // eine Variable
      private Color color; // eine andere Variable
    
      // Eine Methode die ein Variable verändert
      public boolean setStinkend( boolean stinkend ){
         this.stinkend = stinkend;
      }
    
      // Eine Methode welche eine Variable des Objektes zurückgibt.
      public boolean isStinkend(){
        return stinkend;
      }
    }
  • Auch actionPerformed ist eine Methode
  • Aus einer Methode kann man andere Methoden aufrufen
  • Aus der actionPerformed kann man insbesondere die gesammte Logik aufrufen.

Mit anderen Worten: ruf aus deiner actionPerformed-Methode aus eine Methode auf, welche die Logik deines Programmes darstellt. Kopier dieses "//hier ist der Haubteil des Programms *** diesen Teil hätte ich gerne Ausen **** " einfach aus ErsteGUI(), und schreibe es in eine eigene Methode (nennen wir sie doSomething). Aus der actionPerformed rufst du dann doSomething auf. Du kannst dieser doSomething -Methode auch Parameter übergeben, die must du halt angeben in der Signatur von doSomething.
 

Seraph

Aktives Mitglied
Hallo Beni,
vielen Dank für die super Erklärung, ich verstehe nicht, warum in den Büchern, alles in die Länge gezogen wird. Jetzt habe ich es verstanden vielen Dank ;) :D :toll:
Ich werde mich jetzt an die Umsätzung ranwagen.

Schöne Grüße
Meer.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Probleme bei der Variablenübergabe AWT, Swing, JavaFX & SWT 2
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
G lastFocusedComponent in ActionPerformed AWT, Swing, JavaFX & SWT 4
B AWT actionPerformed Method funktioniert nicht AWT, Swing, JavaFX & SWT 12
K Event Handling Mit ActionPerformed und java.io arbeiten AWT, Swing, JavaFX & SWT 3
Q AWT Methodenaufruf aus actionPerformed-Methode AWT, Swing, JavaFX & SWT 4
L ActionPerformed Variable übergeben AWT, Swing, JavaFX & SWT 3
J in actionPerformed() Koordinaten ändern AWT, Swing, JavaFX & SWT 9
C actionPerformed mit mehren Aktionen AWT, Swing, JavaFX & SWT 3
C Actionperformed funktioniert nicht AWT, Swing, JavaFX & SWT 13
H actionPerformed aufteilen AWT, Swing, JavaFX & SWT 12
G if-bedinung in actionperformed AWT, Swing, JavaFX & SWT 4
P Swing actionPerformed()-Methode funktioniert nicht AWT, Swing, JavaFX & SWT 3
S AWT Java actionPerformed "Ok" Button AWT, Swing, JavaFX & SWT 4
V Labeltext ändert sich nicht in actionPerformed AWT, Swing, JavaFX & SWT 5
M actionPerformed() wird zu oft aufgerufen AWT, Swing, JavaFX & SWT 10
M Arbeiten mit actionPerformed(ActionEvent) oder Alternative AWT, Swing, JavaFX & SWT 7
M Swing Anfängerfrage: ActionPerformed AWT, Swing, JavaFX & SWT 3
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
B actionPerformed Problem AWT, Swing, JavaFX & SWT 3
D JTree DefaultMutableTreeNode ActionPerformed AWT, Swing, JavaFX & SWT 3
J Aus ActionPerformed ein Plugin starten AWT, Swing, JavaFX & SWT 4
R paintComponent direkt bei actionPerformed aufrufen AWT, Swing, JavaFX & SWT 2
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
O Button (ActionPerformed) soll neues JFrame erzeugen AWT, Swing, JavaFX & SWT 8
J Action before actionPerformed! AWT, Swing, JavaFX & SWT 4
E ActionListener/actionPerformed() feuert nicht AWT, Swing, JavaFX & SWT 2
E AWT Implementierung einer Anweisung in Methode ActionPerformed AWT, Swing, JavaFX & SWT 2
B Komisches Problem mit actionPerformed() AWT, Swing, JavaFX & SWT 2
K Swing: 2 Buttons und actionPerformed AWT, Swing, JavaFX & SWT 4
B actionPerformed reagiert nicht auf das Canvas-objekt AWT, Swing, JavaFX & SWT 11
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3
F actionPerformed und static? AWT, Swing, JavaFX & SWT 20
B Exceptions in actionPerformed() weiterleiten AWT, Swing, JavaFX & SWT 9
X actionPerformed in einer Klasse Buttons AWT, Swing, JavaFX & SWT 2
T public void actionPerformed(...) ist statisch?? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben