Übergabeparameter an ActionListener

  • Themenstarter Themenstarter GZUS
  • Beginndatum Beginndatum
G

GZUS

Gast
Hoi, Leute!

Der Titel sagt schon alles:
Kann ich einer Action einen anderen Parameter als das Event übergeben?
 
nö
[EDIT]Ok, vllt auch anders:
Du übergibst doch dem Eventlistener nichts, sondern das Objekt, welches ihn aufruft.
[/EDIT]
 
Zuletzt bearbeitet:
Also um ehrlich zu sein finde ich das (traus mich kaum zu sagen) bscheuert
Wenn ich bei einem Buttonclick nun aber einen parameter ubergeben will?
Das Problem ist:
Ich habe so um die 12 Buttons, die alle dieselbe Methode aufrufen und diese dann abhangig von dem unergebenem Parameter bei jedem etwas anders ausgefuhrt wird.
In der Theorie gut, so spare ich echt viele Zeilen Code.
Aber in der Praxis funktioniert das nicht?
 
Was für nen Parameter würdest du denn übergeben wollen?
Du bekommst übrigens mit getActionCommand() bzw. getSource() raus welcher Button das Event ausgelöst hat, ich denke das suchst du doch.
 
Ich mochte eine. string ubergeben
das mit dem getActionCommand hort sich gut an, krieg ich da den variablennamen?

PS Du heist nicht zufallig wilhelmbockel mit nachnamen?
 
den Vorschlag von Marco13 mit den annoymen Objekten bzw. Methoden empfehle ich dir eig nicht. Schon gar nicht wenn du noch andere Listener (zum Beispiel: MouseListener) verwendest, die noch deutlich mehr Methoden haben als der ActionListener. Denn der Code wird dabei schnell unübersichtlich.

Ich würde auch mit getActionCommand() arbeiten, aber welche Variable willst du denn genau auslesen?
 
Evtl. sucht der TO auch sowas?

Java:
package swing.action;

import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;

public class MyAction extends AbstractAction {

    private final String type;

    public MyAction(String theType) {
        type = theType;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println(type);
    }
}

Dann kann man jedem Button eine Action mitgeben:
Java:
...
new JButton(new MyAction("type1"));
new JButton(new MyAction("type2"));
new JButton(new MyAction("type3"));
...
 

Neue Themen


Zurück
Oben