Erro no codigo d uma agenda

4 respostas
Brekoledy

Saudações!!!

Estou dando os primeiros passos em Java, soh sei realmente o básico, e to tendo um problemaun p faze uma agenda (usando o BlueJ), e eu ainda nem chegui na parte pesada da programaçaun!

Bom, eu tenho duas classes, na primeira (Agenda30), tem uma interface, c 3 botoes, cada botaun tem q abrir uma outra janela. No metodo "Agenda30" estaun apenas as intruçoes p construir a janela. O erro estah no metodo "actionPerformed(ActionEvent e)" na linha 53 "Janelas.JInserir();", q deveria ativar uma janela na segunda classe(Janelas).
O erro apontado eh q "o metodo JInserir da segunda classe eh um metodo naun statico e naun pode ser referido apartir d um contexto statico"

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

 public class Agenda30 extends JFrame implements ActionListener
 {
     JButton b1,b2,b3,b4;
     JLabel L1;

     public Agenda30()
     {
         setTitle("Inserindo botoes na janela");
         setSize(350,100);
         setLocation(50,50);
         getContentPane().setBackground(new Color(180,180,180)); 
         
         b1 = new JButton("Inserir");  
         b1.setBackground(new Color(100,180,180));//cor de fundo do botao
         b1.setForeground(Color.black);//cor do titulo do botÆo
         b1.setFont(new Font("ScriptS",Font.BOLD,20)); //define a fonte do botao
         b1.addActionListener(this);
         b1.setToolTipText("Pressione aqui para inserir um contato");	
         b1.setMnemonic(KeyEvent.VK_I);
          b1.setActionCommand("botao1");//define o nome da acao
         b2 = new JButton("Apagar");
         b2.setBackground(new Color(100,180,180));//cor de fundo do botao
         b2.setForeground(Color.black);//cor do titulo do botÆo
         b2.setFont(new Font("ScriptS",Font.BOLD,20)); //define a fonte do botao
         b2.addActionListener(this);
         b2.setMnemonic(KeyEvent.VK_A);
         b2.setToolTipText("Pressione aqui para apagar um contato");
          b2.setActionCommand("botao2");//define o nome da acao
         b3 = new JButton("Visualizar");
         b3.setBackground(new Color(100,180,180));//cor de fundo do botao
         b3.setForeground(Color.black);//cor do titulo do botÆo
         b3.setFont(new Font("ScriptS",Font.BOLD,20)); //define a fonte do botao
         b3.addActionListener(this);
         b3.setMnemonic(KeyEvent.VK_V);
         b3.setToolTipText("Pressione aqui para visualizar os contatos");
          b3.setActionCommand("botao3");//define o nome da acao
         L1 = new JLabel("AGENDA AÇAÍ");
         getContentPane().setLayout(new GridLayout(2,2)); //gerenciador de layout
         getContentPane().add(b1);
         getContentPane().add(b2);
         getContentPane().add(b3);
         getContentPane().add(L1);
     }

     public void actionPerformed(ActionEvent e)
     {  // metodo implementado pelo ActionListener
         if (e.getSource()==b1)
         {
             Janelas.JInserir();
         }	
         if (e.getSource()==b2) 
         {
      	     Janelas.JApagar();   
         }
         if (e.getSource()==b3) 
         {
      	     Janelas.JVisualizar();
         }	
     }	

     public static void main(String args[])
     {
         JFrame Janela = new Agenda30();
         Janela.show();
         //para fechar a janela
         WindowListener x = new WindowAdapter()
         {
             public void windowClosing(WindowEvent e)
             {
                 System.exit(0);
             }
         };
         Janela.addWindowListener(x);
     }
 }

Na segunda classe (Janelas) o medoto "inserir()" eh o unico q jah esta implementado e ele serve soh p construir a janela (implementarei os metodos apagar() e visualizar() depois q conseguir esse).
O metodo "JInserir()" apenas tem q fazer a montagem da interface da janela, os outros dois metodos seraun implementados depois.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Janelas extends JFrame
{
    Janelas()
    {
        
    }
	public void inserir()
	{
	    JLabel IL1,IL2;
	    JTextField IT1,IT2;
	    JButton IB1;
	    setTitle("Inserir Contato");
	    setSize(400,200);
	    setLocation(150,150);
        setResizable(false);
	    IL1 = new JLabel("Nome:");
	    IL2 = new JLabel("Número:");
	    IT1 = new JTextField();
	    IT2 = new JTextField();
	    IB1 = new JButton("OK");
	    getContentPane().setLayout(new FlowLayout());
	    getContentPane().add(IL1);
	    getContentPane().add(IT1);
	    getContentPane().add(IL2);
	    getContentPane().add(IT2);
	    getContentPane().add(IB1);
	}
	public void apagar()
	{
	    
	}
	public void visualizar()
	{
	    
	}

	public void JInserir()
	{
	    JFrame JanInserir = new Janelas();
	    JanInserir.show();
        //para fechar a janela
        WindowListener x = new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        };
        JanInserir.addWindowListener(x);
	}
	public void JApagar()
	{
	    
	}
	public void JVisualizar()
	{
	    
	}
}

Algum poderia me ajudar a por pelomenos essa interface p rodar essa interface!!!

Agradeço a tdos q pelomenos se interessarem em ler!!!

4 Respostas

Marck

Bom dia.

Eu sou obrigado a concordar com o compilador, afinal, ele sempre está certo…rss

Neste caso, voce pode criar uma instância de Janelas:

Janelas j = new Janelas();         
          
          if (e.getSource()==b1)
          {		
 			  
              j.JInserir();
          }	
          if (e.getSource()==b2) 
          {
       	     j.JApagar();   
          }
          if (e.getSource()==b3) 
          {
       	     j.JVisualizar();
          }

Bom, o erro é auto-explicativo.

Ó…eu me interessei em ler, agora pára de escrever igual “menininha”! rsss

Até mais.

Brekoledy

Valeu pela dica!

Funciono, mas apareceram outras duvidas, q eu vo postar na cessaun de Interface Grafica!

Eu escrevo como eu kise!
Falo!!!

rafael.pierre

“cessaun”???

Em que mundo estamos??? :?

Marck

rafael.pierre

“cessaun”???

Em que mundo estamos???

Realmente, o cara “çuperô”.

Criado 15 de julho de 2007
Ultima resposta 16 de jul. de 2007
Respostas 4
Participantes 3