Classes internas para criar vários listeners

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

 

public class Teste {

 

 JLabel titulo;

 

 public static void main(String[] args) {

         Teste t = new Teste();

         t.go();

 }

 

 // método principal        

 public void go() {

     JFrame frame = new JFrame();

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     titulo = new JLabel("Original");

     // botão 1

     JButton bt1 = new JButton("Primeiro");

     bt1.addActionListener(new bt1Listener());

     // botão 2

     JButton bt2 = new JButton("Segundo");

     bt2.addActionListener(new bt2Listener());

     // coloca os bicho na tela

     frame.getContentPane().add(BorderLayout.CENTER, titulo);

     frame.getContentPane().add(BorderLayout.EAST, bt1);

     frame.getContentPane().add(BorderLayout.WEST, bt2);

     // visibila (!)

     frame.setSize(300,300);

     frame.setVisible(true);

 }

 

 // classe interna 1 - controle do clique do primero botão

 class bt1Listener implements ActionListener {

         public void actionPerformed(ActionEvent ae) {

                 titulo.setText("bt 1");

         }

 }

 

 // classe interna 2 - controle do clique do segundo botão

 class bt2Listener implements ActionListener {

         public void actionPerformed(ActionEvent ae) {

                 titulo.setText("bt 2");

         }

 }

}