Lenchen: Buttons / Eventslistener ohne if/else

Hallo zusammen

ich lerne gerade Java, bin also noch neu in der Materie.

Ich möchte gerne ein Programm schreiben, welches zum Beispiel 10 Buttons enthält, bei einem Klick auf einen Button sollen unterschiedliche Dinge passieren.

Zur Zeit habe ich für jeden Button eine If-Anweisung in der Funktion actionPerformed in der ich den Namen oder die Aktion abfrage. Das fühlt sich aber komisch an :D Kann ich für jeden Button eine eigene Funktion angeben?

Viele Grüße
Lenchen

  1. Du behandest den Button doch als Objekt. Nun sollte es nicht schwierig sein für das Objekt Button eine Methode zu definieren, die diese zwei Variablen ausgibt.

    Erweitere also das Objekt Button (Vermutlich benutzt du awt?) um die Variable "Funktion" und schreibe eine Methode, die in einer alertbox oder was auch immer du möchtest diese zwei Variablen sinnvoll ausgibt. Das ganze per eventhandler gesteuert und dann sollte es ohne eine individualdifinition auskommen.

    1. Hallo,

      Du behandest den Button doch als Objekt. Nun sollte es nicht schwierig sein für das Objekt Button eine Methode zu definieren, die diese zwei Variablen ausgibt.

      Von welchen zwei Variablen sprichst du?
      Hast du eigentlich die Frage verstanden?

      Erweitere also das Objekt Button

      Man kann nur Klassen erweitern, keine Objekte.

      um die Variable "Funktion"

      Hä?

      und schreibe eine Methode, die in einer alertbox

      Alertbox?

      oder was auch immer du möchtest diese zwei Variablen sinnvoll ausgibt.

      Wo ging es denn in der Fragestellung um zwei Variablen oder um die
      Ausgabe davon?

      Das ganze per eventhandler gesteuert und dann sollte es ohne eine individualdifinition auskommen.

      Indiviualdefinition?

      Es ging darum, daß bisher die Unterscheidung, welcher Button einen
      ActionEvent ausgelöst hat, in der Methode "actionPerformed" gemacht wird,
      daß diese Methode also -- wenn man so will -- als Dispatcher fungiert.

      Lenchen möchte nun wissen, wie man die evtl. sehr umfangreiche if/else-
      Überprüfung in dieser Methode vermeidet und stattdessen für jeden
      Button eine individuelle Methode zur Verarbeitung des ActionEvent zur
      Verfügung stellen kann.

      Gruß
      Slyh

      1. Genau :)

        und so habe ich es jetzt gemacht:

        JButton jb = new JButton("name");
        jb.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            JButton but = (JButton) e.getSource();
            // irgendwas machen...
          }
        });