Problema com o actionPerformed(ActionEvent e)

Tenho uma classe Janelas() q eh responsavel pela criação de tres janelas, q serão ativadas dependendo da requisição d outra classe. Todas as janelas possuem botes, e eu tentei colocar o metodo mesmo actionPerformed(ActionEvent e) p ativar as funçoes das diferentes janelas.

Soh q o compilador BlueJ acusa um erro estranho, ele diz q a variavel do JButton naun pod ser encontrada, mas ela esta lah, no metodo construtor Janelas().

Algm sabe pq issu tah acontecendo?
Ai vai o codigo:

[code]import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Janelas extends JFrame implements ActionListener
{
//metodos construtores
public Janelas()
{
JLabel IL1,IL2;
JTextField IT1,IT2;
JButton IB1;
setTitle(“Inserir Contato”);
setSize(300,70);
setLocation(150,150);
setResizable(false);
IL1 = new JLabel(“Nome:”);
IL2 = new JLabel(“Número:”);
IT1 = new JTextField("");
IT1.setFont(new Font("",Font.BOLD,12));
IT2 = new JTextField("");
IT2.setFont(new Font("",Font.BOLD,12));
IB1 = new JButton(“OK”);
IB1.addActionListener(this);
getContentPane().setLayout(new GridLayout(2,6));
getContentPane().add(IL1);
getContentPane().add(IT1);
getContentPane().add(IB1);
getContentPane().add(IL2);
getContentPane().add(IT2);
}

public Janelas(int i)
{
    JLabel AL1,AL2;
    JTextField AT1;
    JButton AB1;
    setTitle("Apagar Contato");
    setSize(300,70);
    setLocation(150,150);
    setResizable(false);
    AL1 = new JLabel("Indice:");
    AT1 = new JTextField("");
    AT1.setFont(new Font("",Font.BOLD,12));
    AB1 = new JButton("Apagar");
    getContentPane().setLayout(new GridLayout(2,2));
    getContentPane().add(AL1);
    getContentPane().add(AT1);
    getContentPane().add(AB1);
}

public Janelas(String s)
{
    
}
//fim dos metodos construtores-------------------------------------------------
//metodos para geração dos evetnos---------------------------------------------

public void actionPerformed(ActionEvent e)
{
    ListaTelefonica l=new ListaTelefonica();
    if (e.getSource()==IB1)
     {
         l.inserir();
     }	
     if (e.getSource()==AB1) 
     {
  	     l.apagar();
     }
     if (e.getSource()==VB1) 
     {
  	     l.visualizar();
     }	
}

public void JInserir()
{
    JFrame JanInserir = new Janelas();
    JanInserir.show();
   
}
public void JApagar()
{
    JFrame JanInserir = new Janelas(2);
    JanInserir.show();
}
public void JVisualizar()
{
    JFrame JanInserir = new Janelas("bla");
    JanInserir.show();
}

}
[/code]

Troque isto:

     //metodos construtores
     public Janelas()
     {
         JLabel IL1,IL2;
 	    JTextField IT1,IT2;
 	    JButton IB1;

por isto:

         JLabel IL1,IL2;
 	    JTextField IT1,IT2;
 	    JButton IB1;
     //metodos construtores
     public Janelas()
     {

Por que é que deu problemas? É que você declarou as variáveis dentro do construtor, como se elas fossem variáveis locais (ou seja, só valem “dentro das chaves” do construtor). Aí a outra rotina não conseguiu achar as variáveis.

Pow, valeu thingol!!!

Funciono perfeitament!

Brigadaun!!!