• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Java - Übergabe Button an ActionListener

DerEvil

Spiele-Novize/Novizin
Mitglied seit
21.08.2005
Beiträge
141
Reaktionspunkte
0
Java - Übergabe Button an ActionListener

Hi,
wie kann ich folgendes realisieren?



public class GUI{
..
panel3.add(new JButton("Speichern"));
...
...
Listener l = new Listener(????);
..
}


Mein Button habe ich lt. Buch einfach angefügt, aber ich habe jetzt keinen Parameter, den ich den Listener mitgeben kann!
Nachtürlich könnte ich auch einfach...


JButton b = new JButton("Speichern);
panel3.add(b);
Listener l = new Listener (b);

...machen. Ich möchte aber gerne die oben genannte vorgehensweise aus dem Buch realisieren.
Kann mir einer weiterhelfen, wie ich die Übergabe machen kann?
 
AW: Java - Übergabe Button an ActionListener

Ich glaub nicht, dass das so einfach geht, zumindest fällt mir auf die schnelle nichts ein. Ich sehe auch keinen richtigen Sinn darin, es nicht einfach zu deklarieren.
Streng genommen sollte man Controlling (also die Listener und die Verarbeitung) und die Benutzeroberfläche auch kapseln.
Ich würde da einfach folgendes machen:
JButton myButton = new JButton("Bla");
MyActionListener myAL = new MyActionListener();
myButton.setActionCommand("DWIMB");
myButton.addActionListener(myAL);
myPanel.add(myButton);
....
public class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("DWIMB")) {
// do what i mean
}}
 
AW: Java - Übergabe Button an ActionListener

Du brauchst für die Listener ne eigene Klasse, wie im obigen Beispiel und fügst diese Klasse als listener ein

z.B.

JButton button1 = new JButton("Irgendwas");
button1.addActionListener(new myActionListener());



public class myActionListener
implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
//Irgendwas, was der Button1 dann machen soll
}
}

Damit spart man sich das setActionCommand und die getActionCommand Abfrage .
 
Zurück