Event Handling ActionListener übergeben ich checks net

MarioW1986

Bekanntes Mitglied
Hi zusammen, ich hab hier ein "Problem" (wenn man das so nennen kann).

Ich möchte was ganz einfaches machen aber steh voll aufm Schlauch. Mein Buch und auch das Netz konnten mir leider net weiterhelfen.

Also mein Simpler Versuch ist folgender:

Ich möchte auf ein Button klicken und die Textfelder leeren. Schwierig ne 😀

mein Code:
Java:
...
btnEmpty.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				txtuser.setText("");
				txtpw.setText("");
				
			}
        	
        });
...

wer hätte das gedacht es funktioniert ohne Probleme. was ich aber eigentlich erreichen möchte is folgendes.

Ich habe eine extra Klasse erstellt, die meine ActionEvents bearbeitet. Die Klasse heißt AktionenListener und in der Methode actionPerformed hab ich genau das was ich oben auch stehen habe. wie greife ich jetzt auf die externe Klasse zu um genau die gleiche Aktion durchzuführen. und eine zusätzliche Frage. Verhält sich diese Aktion bei allen Listener gleich? heißt das was ich bei nem ActionListener mache funktioniert dann auch für ein WindowListener?

Eigentlich nicht sonderlich schwer aber ich steh grad vor ner Wand^^

Danke für eure Hilfe
 
Java:
btnEmpty.addActionListener(new AktionenListener())
müsste es doch tun oder?
AktionenListener muss lediglich ActionListener implementieren. DIe Methode hast du ja in AktionenListener schon implementiert wie du sagst
 
wie greife ich jetzt auf die externe Klasse zu um genau die gleiche Aktion durchzuführen
Deine ActionListener Implementierung braucht eine Referenz auf die "externe" Klasse, die kannst du direkt im Konstruktor mitgeben.

Verhält sich diese Aktion bei allen Listener gleich? heißt das was ich bei nem ActionListener mache funktioniert dann auch für ein WindowListener?
Versteh ich nicht, aber ja?! In beiden Listenern kannst du den gleichen Code ausführen.
 
jipp die Methode actionperformed ist implementiert nur wenn ich das so mache wie du sagst dann will ecplise, dass ich einen Konstruktor erstellen soll. wenn ich das mache dann ist das ganze auch wieder ausführbar aber es passiert halt einfach nix. mein Button hat absolut keine Funktion.

das sieht ejtzt so bei mir aus:

Klasse Frame:
Java:
btnEmpty.addActionListener(new AktionenListener(txtuser, txtpw));


Klasse AktionenListener:
Java:
public class AktionenListener implements ActionListener{

	public AktionenListener(JTextField user, JTextField pw) {
		user.setText("");
		pw.setText("");
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}
 
tja, Intelligenz ist schon vorausgesetzt, sonst könnte man den Computern auch das Programmieren überlassen,
sorry 😉

die Aktion muss schon wieder in die actionPerformed, nur was darin steht wird beim Klick ausgeführt,
der Konstruktor läuft doch nur einmal am Anfang, da solltest du die Parameter in Attributen ablegen,
damit in der actionPerformed die Variablen auch gefunden werden
 

Zurück
Oben