public void actionPerformed

Status
Nicht offen für weitere Antworten.

stetabar

Bekanntes Mitglied
wie kann ich es machen, dass in der Methode "public void actionPerformed(ActionEvent e)" eine Unterscheidung stattfindet???

Problem:

Ich habe einen Button, der über diese Methode eine Funktion ausführen soll
und einen Timer, der im regelmäßigen Abstand etwas tut
(unabhängig voneinander)

besteht die Möglichekeit eine Abfrage in diese Methode einzubauen, die die Action-Geber unterscheidet?
 
e.getSource() gibt das Objekt zurück, welches den Event ausgelöst hat.
du musst es allesdings für einen Vergleich noch Casten
Code:
if(e.getSource() instanceof JButton)
     if((JButton)e.getSource() == deinButton)
           //anweisung
 
oder mit setActionCommand / getActionCommand


Code:
JButton jb = new JButton("erster");
jb.setActionCommand("eins");

JButton jb2 = new JButton("zweiter");
jb2.setActionCommand("zwei");

public void actionPerformed(ActionEvent e){
 if(e.getActionCommand().equals("erster"){
     //erster button gedrückt
 }
.
.
.
}
 
dotlens hat gesagt.:
du musst es allesdings für einen Vergleich noch Casten

Sry dotlens aber das is Unsinn, weshalb sollte man Objekte zum Vergleichen casten?
Code:
X x = new X();
Object o = x;
if (o == x) //true ohne cast
 
Illuvatar hat gesagt.:
dotlens hat gesagt.:
du musst es allesdings für einen Vergleich noch Casten

Sry dotlens aber das is Unsinn, weshalb sollte man Objekte zum Vergleichen casten?
Code:
X x = new X();
Object o = x;
if (o == x) //true ohne cast
*überleg* *studier*
Ahhh, jetzt weiss ich wieso ich so einen Unsinn erzähle. Habe in meinen letzten Progis dann immer die Funktionen von JButton benötigt, deshalb ist mir das so hängen geblieben.
Sorry!
Natürlich geht der Vergleich auch ohne Cast!
 
danke dotlens
genau das brauchte ich!

@die anderen: habe nur einen Button und der soll halt nur was anderes machen, als der Timer.
mit der ersten Version hat das super geklappt.

auch danke an die anderen!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben