Hier wird dem Button einen ActionListener mit einem ButtonListener Objekt übergegeben. In der inneren Klasse implementiert ButtonListener vom ActionListener. Es erfolgt aber kein Actionevent e. Warum wird dann der Methodenkörper ausgeführt nach einem Knopfdruck wenn der Knopdruck nicht dem Parameter e hinzugeteilt wurde? Also so if( e.getSource() == this.button).
Ich schätze das hat was mit dem ButtonListener zu tun nur ich verstehe nicht wie. Danke für die Eklärung
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FightClubFrame extends JFrame {
// Deklaration der Bestandteile
private JTextField textField;
private JLabel label;
private JButton button;
private JPanel panel;
public FightClubFrame() {
// Erzeugung der einzelnen Elemente
button = new JButton(" Talk ");
button.addActionListener(new ButtonListener());
label = new JLabel();
textField = new JTextField();
panel = new JPanel(new GridLayout(2, 1));
// Festlegung der Eigenschaften des Frames
setTitle(" Fight Club ");
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
// Aufbau der verschachtelten Oberfl¨ache
panel.add(label);
panel.add(textField);
add(panel, BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);
}
class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String input = textField.getText();
if (input.contains("Fight Club")) {
label.setText("Lets Fight");
} else {
label.setText("Dont Fight");
}
}
}
public static void main(String[] args) {
// Erzeugung einer Instanz des Frames
FightClubFrame frame = new FightClubFrame();
frame.setVisible(true);
}
}