Wie wird die 'actionPerformed'-Methode ohne expliziten Aufruf aufgerufen?
Ich habe gerade angefangen, GUI mit Swing zu lernen und verstehe nicht genau, wie dasactionPerformed
-Methode funktioniert. Betrachten Sie den folgenden Code:
//code to create a button and change its text when clicked
public class simplegui implements ActionListener {
JButton button;
public static void main(String[] args) {
simplegui gui=new simplegui();
gui.go();
}
public void go() {
JFrame frame=new Frame();
button=new JButton("click Me");
button.addActionListener(this);
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
button.setText("I've been clicked!");
}
}
Sollte ein Objekt nicht für eine Klasse erstellt werden, bevor eine Methode darauf aufgerufen wird (außer für statische Methoden)?
Wenn die Schaltfläche angeklickt wird, wird dasactionPerformed
-Methode heißt, aber wie? Wo wird angerufen? Ich habe die Schnittstelle implementiertActionListener
, aber wo ist der Code, der weiß, dass das 'ActionEvent'-Objekt beim Auftreten einer Aktion an die' actionPerformed'-Methode gesendet werden soll? Ist es in der Button-Klasse vorhanden? Ist deraddActionListener
-Methode in der Button-Klasse vorhanden?
Wenn ich auf die Schaltfläche klicke, wie wird die Systemaufrufaktion ausgeführt und wo wird der Code ausgeführtgui.actionPerformed()
?
ch habe bisher Java-Konzepte von OO, Static usw. befolgt, aber diese gesamte ereignisgesteuerte Programmierung ist verwirren