# Übergabeparameter an ActionListener



## GZUS (7. Aug 2010)

Hoi, Leute!

Der Titel sagt schon alles:
Kann ich einer Action einen anderen Parameter als das Event übergeben?


----------



## XHelp (7. Aug 2010)

nö
[EDIT]Ok, vllt auch anders:
Du übergibst doch dem Eventlistener nichts, sondern das Objekt, welches ihn aufruft.
[/EDIT]


----------



## GZUS (7. Aug 2010)

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?


----------



## Gast2 (7. Aug 2010)

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.


----------



## GZUS (8. Aug 2010)

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?


----------



## Gast2 (8. Aug 2010)

Den ActionCommand kannst du setzen wie du möchtest. Setzt du den nicht explizit wird der Text des Buttons verwendet.



> PS Du heist nicht zufallig wilhelmbockel mit nachnamen?


Äh.. :noe:


----------



## Marco13 (8. Aug 2010)

Die zweite Methode, die in http://www.java-forum.org/bilder-gui-damit-zusammenhaengt/49255-componenten-listener.html beschrieben ist, geht vielleicht in diese Richtung.


----------



## MAltendeitering (9. Aug 2010)

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?


----------



## mvitz (9. Aug 2010)

Evtl. sucht der TO auch sowas?


```
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:

```
...
new JButton(new MyAction("type1"));
new JButton(new MyAction("type2"));
new JButton(new MyAction("type3"));
...
```


----------



## Jonny2002 (17. Mai 2011)

Geht so etwas auch mit Radio Buttons??


----------

