Java ActionListener in seperater Klasse

Xerxes18

Lieutenant
Registriert
Aug. 2008
Beiträge
700
Hallo liebe Gemeinde,

ich habe Google schon gefragt, aber irgendwie bekam ich nicht die Antwort auf meine Frage.

Ich habe den ActionListener im moment immer in der Klasse drin, wo auch die GUI gezeichnet wird.

GIbt es eine Möglichkeit, den ActionListener in eine eigene Klasse zu packen? Wenn ja wie?

Danke im Voraus.

Xerxes18
 
Hallo.

Klar geht das.
Diese separate Klasse muss nur das ActionListener-Interface implementieren. Dann kannst du einfach an der Stelle, an der du derzeit deinen ActionListener übergibst (vermutlich in control.addActionListener) eine Instanz deiner neuen Klasse übergeben.

Also in diesem Sinne:
Code:
public class ExitListener implements ActionListener {
	private JFrame frame;
	
	public ExitListener(JFrame frame) {
		this.frame = frame;
	}
	
	public void actionPerformed(ActionEvent e) {
		this.frame.dispose();
	}
}
und
Code:
control.addActionListener(new ExitListener(this));
Blöd ist bei diesem Vorgehen nur, dass du ohne Weiteres keinen Zugriff auf die Variablen der GUI-Klasse hast. Aber das wirst du dir ja selbst überlegt haben.

Grüße, df
 
Man kann noch einen Construktor einbauen, wo man sonstigen Kram mit übergeben kann.

Falls die GUI in einem extra Thread läuft, kann man dort Methoden einbauen, auf die man von außen zugreifen kann.
 
Habs geschafft dank euch, vielen Dank!
 
Zuletzt bearbeitet:
Du musst da voneinander erben lassen. Ich denke hier sollte der DialogListener vom ExitListener erben.

Aber, was soll das bringen? Die vererbten Methoden werden doch überladen.
 
Zurück
Oben