ActionListener und Werteübergabe an andere Klasse

Status
Nicht offen für weitere Antworten.
F

Flokk

Gast
Ich habe eine Klasse mit der ich einen String von der Klasse CGui übernehmen will, wie in diesen Bsp. zu sehen ist. So weit so gut:
Code:
public class CTestklasse {
    
   public static void main(String args[]) {
    CGui of = new CGui();
    String wert = of.getTextFromTextBox();
    System.out.println(wert);
    }
    
}

In der Klasse CGui habe ich ein JButton und eine JTextField. Nun will ich in das Textfeld einen Text eingeben und dann will ich den Button drücken, sodass der Text dann, und nur dann, in den zu übergebenden String gespeichert wird.

Jetzt habe ich nur folgendes Problem:
Code:
jButton.addActionListener(new ActionListener() 
        { 
                public void actionPerformed(ActionEvent e) 
                { 
                return jTextfeld.getText();
                } 
        });
--> so gehts, da das return ein public String … verlangt

Code:
 jButton.addActionListener(new ActionListener() 
        { 
                public string actionPerformed(ActionEvent e) 
                { 
                return jTextfeld.getText();
                } 
        });
--> so gehts auch nicht, da der Action Listener ja ein public void …haben will.

Was tun???

PS: Am liebsten wäre mir das der String direkt in die obere Klasse(CTestklsse) geschrieben wird!

Danke im Voraus für jede Hilfe

Flokk
 
S

SlaterB

Gast
du musst dir eine andere Denkweise für Java-Programme aneignen,
durch das Drücken eines Buttons kann nicht eine Variable in der main-Operation befüllt werden,

schon gar nicht hat das mit dem Rückgabetyp der actionPerformed() zu tun, wie kommst du darauf,
alles was dort zurückgegeben würde landet höchstens in irgendeinen System-Thread der das MouseEvent bearbeitet,

die Signatur von der actionPerformed() ist fest vorgegeben und kann nicht verändert werden,
die main-Operation läuft nach der Erzeugung der GUI weiter und drüfte normalerweise innerhalb von Millisekunden beendet sein, lange bevor du auf den Button drückst,

das Programm steht zu diesem Zeitpunkt still, allein durch das Button-Drücken wird ein Event erzeugt
und die Kontrolle an dier actionPerformed()-Operation übergeben,
was auch immer du tun willst: es muss in dieser Operation geschehen, natürlich sind auch Aufrufe an externe Objeke, das Starten von Threads und alles andere möglich,
nur mit der main-Operation hat das nix mehr zu tun, das ist praktisch eine neue main ;)

darin kannst du gerne den String von der TextBox auslesen (falls eine Referenz auf die TextBox oder auf die GUI bekannt ist)
und an die Konsole ausgeben,
um es in die CTestKlasse zu schreiben müsste dort eine statische Operation vorhanden sein, die aufgerufen werden kann
CTestKlasse.setString(st);

dies hätte allerdings auch nix mit der main-Operation zu tun, diese ist da schon vorbei oder wenn nicht kann sie unmöglich angesprochen werden
 
G

Guest

Gast
Ja entschuldige das was ich geschrieben haben, vielleicht nicht alles richtig war, aber von daher ist es ja das Anfängerforum.

Das Auslesen des Textfeldes bekomme ich ja hin, damit is mir aber irgendwie noch nicht geholfen! Ich will das(aus dem Textfeld) ja aufrufen wenn ich die andere Klasse(Testklasse) starte.
Danke

FLOKK
 

L-ectron-X

Gesperrter Benutzer
SlaterB hat gesagt.:
um es in die CTestKlasse zu schreiben müsste dort eine statische Operation vorhanden sein, die aufgerufen werden kann
CTestKlasse.setString(st);
Ein statischer Kontext ist nicht nötig und außerdem auch böse. :wink: In ganz seltenen Fällen nur wird von static Gebrauch gemacht. Objekte kommunizieren in Java durch versenden von Nachrichten. Sie rufen also gegenseitig ihre Methoden auf. Hier eine Variante, wie das zu lösen wäre.

Die Testklasse:
Code:
public class TestClass {
   private Gui of;
   
   public TestClass() {
      of = new Gui(this, "Text eingeben");
   }
   
   public void notifyAboutAction() {
      System.out.println(of.getTextFromTextBox());
   }
   
   public static void main(String[] args) {
      new TestClass();
   }
}

Eine GUI mit Textfeld und Button:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Gui extends JFrame {
   private JTextField txtField;
   private JButton button;
   private JPanel panel;
   private TestClass owner;

   public Gui(TestClass owner, String title) {
      super(title);
      this.owner = owner;
      setSize(400, 150);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      
      txtField = new JTextField();
      txtField.setPreferredSize(new Dimension(200, 24));
      
      button = new JButton("OK");
      button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            Gui.this.owner.notifyAboutAction();
         }
      });
      
      panel = new JPanel();
      
      panel.add(txtField);
      panel.add(button);
      
      getContentPane().add(panel);

      setVisible(true);
   }
   
   public String getTextFromTextBox() {
      return txtField.getText();
   }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben