Use an Inner Class to handle the event : ActionListener « Swing Event « Java Tutorial






import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainClass extends JFrame {
  private JButton button1 = new JButton("Click Me!");

  public static void main(String[] args) {
    new MainClass();
  }
  public MainClass() {
    this.setSize(200, 100);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle("I'm Listening");

    ClickListener cl = new ClickListener();
    JPanel panel1 = new JPanel();
    
    button1.addActionListener(cl);
    panel1.add(button1);
    this.add(panel1);

    this.setVisible(true);
  }

  private class ClickListener implements ActionListener {
    private int clickCount = 0;

    public void actionPerformed(ActionEvent e) {
      if (e.getSource() == button1) {
        clickCount++;
        if (clickCount == 1)
          button1.setText("I've been clicked ");
        else
          button1.setText("I've been clicked!" + clickCount + " times!");
      }
    }
  }
}








15.5.ActionListener
15.5.1.implements ActionListener and action class level variable
15.5.2.Handling an action listener
15.5.3.Check the event source in actionPerformed method
15.5.4.Use an Inner Class to handle the event
15.5.5.Use one inner class to handle events from two buttons
15.5.6.Get event source from ActionEvent
15.5.7.Add action listener to JTextField
15.5.8.ComboBox with ActionListenerComboBox with ActionListener
15.5.9.ActionEvent.getActionCommand()
15.5.10.Using an inner ActionListener class.