ActionListener in anderer Klasse erkennen

Extremefall

Bekanntes Mitglied
Hallo,
ich habe die Beispielsklasse GUI:
Java:
public class GUI implements ActionListener{
    public GUI{
    public static JButton buttona = new JButton();
    buttona.addActionListener(new ACTIONSOFGUI());
    }
}

und eine Klasse ACTIONSOFGUI:
Java:
public class ACTIONSOFGUI implements ActionListener {
    public void actionPerformed(ActionEvent e){
    if (e.getSource()==buttona){
    System.out.println("Button wurde gedrückt");
    }
  }
}

Wie kann ich nun einen ActionListener in der GUI registrieren und dann in einer anderen Klasse auswerten bzw. verarbeiten?

Edit: Also genauer gesagt einfach die Frage, wie ich einen ActionListener außerhalb der GUI Klasse implementiere und auf die registrieren Objekte von der anderen Klasse zugreife.

MFG
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
ACTIONSOFGUI bräuchte eine Referenz auf GUI und dort müssten entsprechende getter bereit stehen.
Oder aber, du setzt einfach actionCommands (buttona.setActionCommand("buttona")) ..dann kannste in deinem Listener mit "buttona".equals(e.getActionCommand()) vergleichen.
Oder aber wenn du eh so etwas wie:
[c]buttona.addActionListener(new ACTIONSOFGUI());[/c] schreibst, könntest den Button auch einfach im Konstruktor übergeben ;D
oder oder .... How to Write an Action Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)
 

Extremefall

Bekanntes Mitglied
Wie könnte ich denn den Button per Konstruktor übergeben? Dann müsste ja aber doch eine Instanz von der Klasse mit den Buttons (also der GUI) erzeugt werden, denn da sind ja die Buttons drin. Aber dann müsste doch der ActionListener wie folgt registriert werden in der GUI:
buttona.addActionListener(new GUI());

Nur wie kann ich dann darauf zugreifen aus der Klasse ACTIONSOFGUI()? Ich stehe gerade auf dem Schlauch :D
 

Extremefall

Bekanntes Mitglied
Wie meinst du das mit dem Konstruktor.

Beispiel:
Java:
public class Beispiel {
public Beispiel(){
private JButton derbutton = new JButton();
}
}

Nun wird eine Instanz erzeugt in Klasse B:
public class B{
public B(){
private Beispiel beispielklassenobjekt = new Beispiel();
}
}

Nur wie kann ich in Klasse B auf die Instanzvariable der Klasse Beispiel zugreifen?
 
S

SlaterB

Gast
dein Beispiel ist eher unklar zusammen mit der Frage 'Wie meinst du das mit dem Konstruktor.' da jetzt nicht mehr klar ist, wer wen erzeugt..

also wenn Beispiel die GUI sein soll, dann muss von Beispiel aus der ActionListener = B erzeugt werden,
das fehlt jetzt aber einfach mal..

im Listener bzw B. ein neues Beispiel bzw. GUI-Objekt zu erzeugen ist schlecht, das Original wird benötigt, nicht eine zweite Kopie,
der Konstruktor brauch einen Parameter, der Aufrufer muss sich selber als Parameter übergeben (new Listener(this) )

schau dir in einem beliebigen Lehrbuch an, wie man grundlegend einen Konstruktor oder auch nur eine Methode mit Parameter definiert

> Klasse B auf die Instanzvariable der Klasse Beispiel zugreifen?

so wie jeder andere Klasse auch mit ihren Instanzvariablen umgeht -> Grundlagen!
 

Extremefall

Bekanntes Mitglied
Wenn ich das richtig verstanden habe, soll die GUI eine Instanz des Listeners aufrufen.

Wäre also so etwas gemeint:
Java:
public GUI(new ACTIONSOFGUI(this));
oder wie ist es gemeint? Ich bin gerade etwas durcheinander. Denn es soll ja einfach nur in der GUI der Listener registriert werden und in einer anderen Klasse darauf zugegriffen werden.

Ich habe die Instanzvariable aber mit public static JButton derbutton in Klasse A festgelegt, nur wenn ich jetzt in Klasse B derbutton.addActionListener(new KlasseB()); mache, so wird gesagt, dass die Variable nicht bekannt ist.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> Denn es soll ja einfach nur in der GUI der Listener registriert werden und in einer anderen Klasse darauf zugegriffen werden.

den Listener registriert hattest du vorher schon
das Problem war doch, dem Listener noch die GUI bekannt zu machen,

eine Veränderung des GUI-Konstruktors ist dazu nicht nötig, beim Listner muss der Konstruktor die GUI aufnehmen, in einer Instanzvariablen speichern,
dann kannst du in Methoden dieser Klasse, wie actionPerformed() eine ist, auf die Instanzvariable, ergo die GUI, zugreifen

buttona.addActionListener(new ACTIONSOFGUI(this));
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
diese Aussage ist nicht ganz klar, es sei denn buttona.addActionListener(new ACTIONSOFGUI()); steht in einer statischen Methode,
poste bisschen Code, der vom Anfang geht sowieso nicht (statisches Attribut innerhalb einer Methode definiert)

oder verzichte ganz einfach auf static, wo immer es stört bzw. wann immer passend, wie z.B. bei Buttons in einer GUI
 

Extremefall

Bekanntes Mitglied
Hier einmal ein bisschen Code:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GUI implements ActionListener {
	private static JWindow jwind= new JWindow();
...
	private static JPanel jpan = new JPanel();
...
	public static JButton derbutton = new JButton("Button drück mich");
...
	public static void main(String[] args) {
...
		jpan.add(derbutton);
...
		jwind.add(jpan);
...
		derbutton.addActionListener(new ACTIONSOFGUI());
	}
	        public void actionPerformed(ActionEvent e) {
		if (e.getSource() == derbutton) {
		// Das soll in die andere Klasse
		}
	}
}

Ich habe hier einmal meinen gekürzten Code. Ich hoffe, dass hilft weiter.
 

Extremefall

Bekanntes Mitglied
Die Lösung war ja kinderleicht. Es ist so einfach gewesen, dass ich mich frage, warum ich nicht eher darauf gekommen bin.
Die Lösung ist einfach GUI.derbutton. So kann ich in der Methode ActionPerformed der Klasse ACTIONSOFGUI auf die Klassenvariable zugreifen. Ich habe einfach Instanzvariable und Klassenvariable vertauscht. Das hat mir geholfen: http://www.java-forum.org/java-basi...rschied-zwischen-klassen-instanzvariable.html

Danke für die Hilfe.
 

Hein_nieH

Bekanntes Mitglied
Hallo,
der Beitrag ist ja schon ein paar Jahre her.
Ich stehe vor dem gleichen Problem.
Leider funktioniert der Link im Post 12 nicht mehr.
Kann mir jemand die Lösung noch einmal studentensicher erklären? :rolleyes:

Gruss Hein_nieH
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F ActionListener in anderer Klasse Java Basics - Anfänger-Themen 2
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
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
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
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