Java Swing Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 4.00

Button Action Handler at the Component Level

This section provides a tutorial example on how to create a button to handle actions by adding the ActionListener interface to the button component.

One way to handle button actions is to add an action listener to the button object. An action listener is an object of any class that implements the ActionListener interface.

The following program shows you how to extend the JButton class to implement the ActionListener class:

/**
 * JButtonAction1.java
 * Copyright (c) 2002 by Dr. Herong Yang, http://www.herongyang.com/
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JButtonAction1 {
   public static void main(String[] a) {
      JFrame f = new JFrame("My Switch Button");
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JButton b = new MyButton();
      f.getContentPane().add(b);
      f.pack();
      f.setVisible(true);
   }
   private static class MyButton extends JButton 
      implements ActionListener {
       String text = "On";
       public MyButton() {
          super();
          setText(text);
          addActionListener(this);
       }
       public void actionPerformed(ActionEvent e) {
          if (text.equals("On")) text = "Off";
          else text = "On"; 
          setText(text);
       }
   }
}

If you run this example, you will get:
JButton Button Action Handler

The button works well. If you click the button, the button label text will change from "On" to "Off"; and from "Off" to "On", if you click it again.

Sample programs listed in this section have been tested with JDK 1.3.1, 1.4.1, 1.5.0, and 1.6.0.

Last update: 2009.

Sections in This Chapter

Creating Buttons with javax.swing.JButton Class

Creating Image Buttons with javax.swing.JButton Class

Button Action Handler at the Component Level

Button Action Handler at the Frame Level

Mouse Click Handler at the Frame Level

Dr. Herong Yang, updated in 2009
Button Action Handler at the Component Level