ActionListener(Swing)



  • Hey leute!

    Ich hab eine Frage zur Swing-Programmierung in JAVA. Es geht um ActionListener. ActionListener funktioniert ja nur bei JButton, also wenn eine Schaltfläche gedruckt wird bekommt das ActionListener mit, richtig?

    Aber wie funktioniert das jetzt intern im PC, bei der Programmausführung?
    In C ist das irgendwie alles viel einfach zu verstehn, das Programm wird von oben bis unten im main() einfach durchgearbeitet, klar ist es in Java ähnlich, aber in C einfach zu verstehn finde ich.

    Hier mal ein Bsp-Code dazu:

    private class button1_ActionListener implements ActionListener {
    		private int i;
    		public void actionPerformed(ActionEvent ae) {
    			i++;
    			label1.setText("Button gedrückt:"+i+" mal gedrückt");
    
    		}
    	}
    

    Jedes mal wenn die Schaltfläche gedrückt wird wird hinaufgezählt. Muss man den, wenn man den ActionListener verwenden will immer so schreiben? mit dem actionPerformed etc.? Also diese 2 Blöcke da?

    Da steht ja button1_ActionListener wird implementiert in ActionListener, oder von ActioListener? Wie sagt man das genau? Was heißt "implementieren" in diesem Fall? Ähnlich wie extends(ableiten)?

    Kann ich das so beschreiben: Wenn man eine Schaltfläche drückt, dann wird die Klasse button1_ActionListener aufgerufen, oder das ActionPerformed und dies kann man als "Endlosschleife" sehn?

    Danke im voraus!

    mfg

    gusti



  • Moin,

    ich sehe das ganz anders. C ist viel schwieriger als Java 😉 Wie auch immmer..
    Dein Code sieht doch ganz gut aus und du hast diesen fast richtig verstanden. Das Keyword implements implentiert ein Interface, welches dir die Methode "actionPerformed" liefert. Diese Methode muss überschieben werden - ist halt ein Interface 😉

    Man kann ActionLister auch Labels, Panels usw hinzufügen... alles kein Problem.
    Dazu musst du die Methode "addActionListener(new MyListener())" der Componente hinzufügen und MyListener implementieren.

    Andersrum ist auch eine anonyme Variante Möglich.
    See:
    http://www.dpunkt.de/java/Die_Sprache_Java/Objektorientierte_Programmierung_mit_Java/64.html

    Viele Grüße

    PS: Gibt es in C keine Interfaces?


Log in to reply