Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » ActionListener auslagern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.02.2007, 17:52 Uhr
cmos



Hallöchen,
meine Frage ist, wie man den ActionListener bzw. die
actionPerformed Methode auslagern kann. Also von der
GUI trennen.

Bisher habe ich in meinen Dialogklassen den ActionListener
mit implements ActionListener eingebunden und in der Dialogklasse
die actionPerformed Methode überschrieben.
Wie kann ich diese Auslagern ?
Ich möchte beispielsweise eine Klasse MyListener erstellen
welche die ganzen Aktionen verwaltet.

In dem Dialog Konstruktor habe ich MyListener übergeben
und kann nun (theoretisch) schreiben,

exititem.addActionListener(listener);
exititem.setActionCommand("Exit");

Das Problem ist nun, das ich mit MyListener nicht wirklich arbeiten kann.
Denn ich kann ja nicht aus MyListener auf die notwendigen Methoden
bzw. Variablen aus meinem Dialog zugreifen.

Wie lagert man das nun richtig aus ?

Grüße,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.02.2007, 18:17 Uhr
Blubber2063



Na wie du schon angefangen hast, du musst eben dafür sorge Tragen das der Listener die nötigen Daten entweder per Methodenaufruf oder im Kontruktor übergeben kriegt, wie sollte er sonst arbeiten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2007, 18:47 Uhr
cmos



Hallo,
habs jetzt. Hatte zuvor ein bißchen gegoogelt und mich hat das ein wenig verwirrt
was dort stand.
Ich habe jetzt in der Klasse MyListener eine Membervariable angelegt und
übergebe per Konstruktor meinen Dialog.


C++:
private MeinDialog dlg;
public MyListener (MeinDialog dialog)
{
     dlg = dialog;
}


und im eigentlichen Dialog habe ich eine Instanz von MyListener übergeben.
MyListener listener = new MyListener(this)
Soweit geht das jetzt auch alles.
Ist es eigentlich üblich den ActionListener auszulager bzw.
überhaupt diese Abfragen für Maus und Keyboard auszulagern?

Grüße,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.02.2007, 19:35 Uhr
KaraHead




Zitat:

Ist es eigentlich üblich den ActionListener auszulager bzw.
überhaupt diese Abfragen für Maus und Keyboard auszulagern?



Das kommt wie immer auf die Situation drauf an.
Bei kleinen Spielereien würde ich eine anonyme Klasse erstellen.

C++:
addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent ect){
  }
});



Und wenn es eine größere Berechnung oder ähnliches werden soll, dann lagere ich es mittels eines Action Objektes aus.

Bei Mouse/KeyListenern benutze ich auch ab und zu,wie gesagt kommt auf die Situation an, innere Klassen.

Im Endeffeckt gibt es kein Patentrezept.

Dieser Post wurde am 12.02.2007 um 19:36 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: