Problema com o actionPerformed(ActionEvent e)

2 respostas
Brekoledy

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:
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();
	}
}

2 Respostas

T

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.

Brekoledy

Pow, valeu thingol!!!

Funciono perfeitament!

Brigadaun!!!

Criado 18 de julho de 2007
Ultima resposta 18 de jul. de 2007
Respostas 2
Participantes 2