Todos los tipos de botones son subclases de AbstractButton (paquete javax.swing), la cual declara las características comunes para los botones de Swing.
Un botón de comando genera un evento ActionEvent cuando el usuario hace clic en él. Los botones de comando se crean con la clase JButton. El texto de la cara de un objeto JButton se llama etiqueta del botón. Una GUI puede tener muchos objetos JButton, pero cada etiqueta de botón debe generalmente ser única en las partes de la GUI en que se muestre.
Ejemplo.
/**
* Programa que calcula el doble de un número
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DobleNumero
{
JFrame miVentana;
JButton btnCalcular;
JLabel lblDisplay;
public DobleNumero()
{
inicializarComponentes();
mostrarVentana();
} //fin del constructor DobleNumero
public void inicializarComponentes()
{
miVentana = new JFrame( "Calcula el doble de un número" );
btnCalcular = new JButton( "Calcular" );
lblDisplay = new JLabel( "2", JLabel.CENTER );
miVentana.add( lblDisplay, BorderLayout.NORTH );
miVentana.add( btnCalcular, BorderLayout.SOUTH );
//activa el evento escuchador para el botón
btnCalcular.addActionListener( new Escuchador() );
} //fin del método inicializarComponentes
public void mostrarVentana()
{
miVentana.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
miVentana.setSize( 300, 100 );
miVentana.setVisible( true );
} //fin del método mostrarVentana
private class Escuchador implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
//Recupera el contenido del caption del botón
String cadNumero = lblDisplay.getText();
//Convierte a número
int numero = Integer.parseInt( cadNumero );
//Realiza el cálculo
numero = numero * 2;
//Asigna el resultado al caption del botón
lblDisplay.setText( Integer.toString( numero ) );
} //fin del método actionPerformed
} //fin de la clase Interna Escuchador
} //fin de la clase DobleNumero
El ejemplo utiliza un JLabel y un JButton que nos permite calcular el doble de un número y lo despliega en la JLabel. El siguiente código nos probar el código anterior.
/**
* Ilustra el funcionamiento de la clase DobleNumero.
*/
public class TestDobleNumero
{
public static void main( String[] args ) {
DobleNumero app = new DobleNumero();
} //fin del método void main
} //fin de la clase DobleNumero
