Zum Inhalt springen

Kleines Button/Listener Problem


Empfohlene Beiträge

Geschrieben

Hi,

ich hab hier grad ein verstaendniss problem ... :(

ich hab ne hauptklasse, in der gibt es 2 'Speichern' buttons.

Und ne klasse mit nem ActionListener fuer die buttons.

Momentan hab ich das so geloest, dass ich den Text und den ToolTipText ueberpruefe ... leider hat 'n kollege die tooltips geaendert und ich ne halbe stunde gesucht, bis ich das gefunden hatte ... :(

die methode getName oder getSource liefert mir aber auch keien eindeutige identifizierung der buttons ...

wie kann man das besser realisieren??

danke

Geschrieben

Hi!

Du könntest entweder jedem Button eine eigene Klickmethode zuweisen oder du gibts EINER Methode eine ID als Parameter mit

Beispiel:


 int butt1_ID = 1;

 butt1.addActionListener(new ActionListener() {

          public void actionPerformed(ActionEvent e) {

               MyButtonMethod(butt1_ID);

          }

 });

Wobei "MyButtonMethod" anhand der IDs eben überprüft welcher Button gedrückt wurde und für den halt seine Aktionen durchgeführt werden!

Gruß

Azrael

Geschrieben

Also ich würde es immer mit Actions machen - dadurch entstehen zwar ein paar Klassen mehr, aber das ganze ist übersichtlicher und angenehmer.

Ciao

Christian

Geschrieben
Original geschrieben von -leliel-

die methode getSource liefert mir aber auch keien eindeutige identifizierung der buttons

Wieso nicht? Hast du die equals Methode der Buttons überschrieben?

Die beiden Buttons sind doch unterschiedliche Objekte.

Also kannst du mit getSource().equals(button1) oder getSource().equals(button2) doch herausfinden ob der eine oder der andere Button gedrückt wurde. Unabhängig von Beschriftung, Tooltip oder was weiss ich.

Gruß Jaraz

Geschrieben

@Jaraz: dann muesste ich doch aber die Buttons als public static deklarieren, oder?

naja, beim naechsten mal werd ich fuer jeden button nen eigenen listener schreiben. :rolleyes:

Geschrieben

Also normalerweise ordnet man den Buttons über die Methode setActionCommand einen eindeutigen Namen zu.

In der actionPerformed-Methode bekommt man über das ActionEvent-Objekt (Methode getActionCommand) wieder den Namen des betätigten Buttons raus - man braucht also nicht für jeden Button einen eigenen Listener...

Aber auch wenn Ihr die Button über die Texte oder Tooltips identifiziert, sollte es ohne Probleme auch nach Änderungen funktionieren. Ihr dürft nur nicht die Texte immer neu schreiben sondern entweder in Konstanten ablegen oder (viel besser) die Texte in Property-Files ablegen. Dadurch würde Eure Anwendung auch gleich internationalisiert sein....

Gruß

Snowghost

Geschrieben
Original geschrieben von Snowghost

getActionCommand

imho brauche ich die nur, wenn sich zwischendurch das ActionCommand ändert. Wenn der Button immer das gleiche auslöst, reicht es mir, mit getSource() zu arbeiten.

Das kann natürlich jeder so halten wie er lustig ist. ;)

Gruß Jaraz

Geschrieben

OK. getSource geht auch - aber da vergleicht man ganze Objekte miteinander.

Ich finde es etwas besser, nur einen Namen zu vergleichen - hat auch beim debuggen Vorteile...

Aber wie du sagtest - jeder, wie er es mag...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...