ESTÁ APRESENTANDO O ERRO: cannot find symbol constructor Tratador();

16 respostas
DANIEL35

Está apresentando o erro ao compilar: cannot find symbol constructor Tratador(); Separei o código em diversas classes e quando vou compilar acontece isso.
Alguém poderia ajudar? Vejam o código:

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

public class PainelControle extends JPanel{
	private JButton b1, b2, b3, b4;
	private JTextField c1, c2, c3, c4, c5, c6, c7;
	private JLabel l1, l2, l3, l4, l5, l6, l7;
	private JPanel p1, p2;
	private Tratador tr;

	public PainelControle(){
		tr = new Tratador();
		p1 = new JPanel();
		p2 = new JPanel();
		p1.setLayout(new GridLayout(0,2,0,6));
		p2.setLayout(new GridLayout(0,2,2,8));
			
		l1 = new JLabel ("nome:");
		l2 = new JLabel ("endereço:");
		l3 = new JLabel ("bairro:");
		l4 = new JLabel ("cep:");
		l5 = new JLabel ("cidade:");
		l6 = new JLabel ("profissão:");
		l7 = new JLabel ("modalidade física:");
		c1 = new JTextField (15);
		c2 = new JTextField (15);
		c3 = new JTextField (15);
		c4 = new JTextField (15);
		c5 = new JTextField (15);
		c6 = new JTextField (15);
		c7 = new JTextField (15);
		p1.add(l1);
		p1.add(c1);
		p1.add(l2);
		p1.add(c2);
		p1.add(l3);
		p1.add(c3);
		p1.add(l4);
		p1.add(c4);
		p1.add(l5);
		p1.add(c5);
		p1.add(l6);
		p1.add(c6);
		p1.add(l7);
		p1.add(c7);
		
		b1 = new JButton("INCLLUIR");
		b2 = new JButton("EXCLUIR");
		b3 = new JButton("CONSULTAR");
		b4 = new JButton("SAIR");
		b1.addActionListener(tr);
		b2.addActionListener(tr);
		b3.addActionListener(tr);
		b4.addActionListener(tr);
		b1.setForeground(Color.blue);
		b2.setForeground(Color.blue);
		b3.setForeground(Color.blue);
		b4.setForeground(Color.black);
		p2.add(b1);
		p2.add(b2);
		p2.add(b3);
		p2.add(b4);
		
		setLayout(new GridLayout(2, 0));
		add(p1);
		add(p2);
	}
}

16 Respostas

furutani

posta sua classe Tratador pra gente ver

DANIEL35

A classe Tratador está aí:

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

public class Tratador implements ActionListener{
private JButton b1, b2, b3;
	public Tratador(JButton ba, JButton bb, JButton bc){	
		b1 = ba;
		b2 = bb;
		b3 = bc;
}
public void actionPerformed(ActionEvent acao){
	 if(acao.getSource() == b1) {     
        JOptionPane.showMessageDialog(null,"OK, CADASTRADO COM SUCESSO"); 
                        
        } else{
        	 if(acao.getSource() == b2) {    
        JOptionPane.showMessageDialog(null,"OK, OK, EXCLUÍDO COM SUCESSO");  
                       
        }else{
        	 if(acao.getSource() == b3) {    
        JOptionPane.showMessageDialog(null,"OK, AGUARDE A CONSULTA");  
                       
        }else{
        	  System.exit(0); 
                       
          }
        }
      }
    }        	          
  }
furutani

Sua classe tratador nao tem o construtor default
é só por ele public Tratador(){}

blackfalcon

furutani:
Sua classe tratador nao tem o construtor default
é só por ele public Tratador(){}

Daniel, isso que o furutani falou acontece porque ao voce sobrescrever o metodo, para a maquina virtual, é como se voce nao estivesse mais querendo o construtor default (que no caso nao tem nenhum argumento que é recebido como parametro).

Mas, ao voce criar o objeto dessa classe e nao passar nada, ele emite o erro. É o mesmo que voce tentar criar um objeto ai mandando um inteiro. Como voce nao criou o construtor com esse argumento, vai ser retornado um erro. Entende?

Abraços

DANIEL35
Então, mas como ficaria? Em que lugar devo colocar o
public Tratador() {}
? Deveria ficar assim, no caso?
import java.awt.event.*;
import javax.swing.*;

public class Tratador implements ActionListener{
	private JButton b1, b2, b3;
	public Tratador(JButton ba, JButton bb, JButton bc){	
		b1 = ba;
		b2 = bb;
		b3 = bc;

public Tratador(){

public void actionPerformed(ActionEvent acao){
	 if(acao.getSource() == b1) {     
        JOptionPane.showMessageDialog(null,"OK, CADASTRADO COM SUCESSO"); 
                        
        } else{
        	 if(acao.getSource() == b2) {    
        JOptionPane.showMessageDialog(null,"OK, OK, EXCLUÍDO COM SUCESSO");  
                       
        }else{
        	 if(acao.getSource() == b3) {    
        JOptionPane.showMessageDialog(null,"OK, AGUARDE A CONSULTA");  
                       
        }else{
        	  System.exit(0); 
                       
          }
        }
      }
    }        	          
  }
}
furutani
import java.awt.event.*;
import javax.swing.*;

public class Tratador implements ActionListener{
	private JButton b1, b2, b3;
       
        public Tratador(){}

	public Tratador(JButton ba, JButton bb, JButton bc){	
		b1 = ba;
		b2 = bb;
		b3 = bc;


public void actionPerformed(ActionEvent acao){
	 if(acao.getSource() == b1) {     
        JOptionPane.showMessageDialog(null,"OK, CADASTRADO COM SUCESSO"); 
                        
        } else{
        	 if(acao.getSource() == b2) {    
        JOptionPane.showMessageDialog(null,"OK, OK, EXCLUÍDO COM SUCESSO");  
                       
        }else{
        	 if(acao.getSource() == b3) {    
        JOptionPane.showMessageDialog(null,"OK, AGUARDE A CONSULTA");  
                       
        }else{
        	  System.exit(0); 
                       
          }
        }
      }
  }
}
DANIEL35

Então, eu te agradeço pela ajuda, mas agora começou a apresentar outros 4 erros…

illegal start of expression line 15
illegal start of expression line 15
expected line 15
expected line 15

sandro.ci02

Faltou um } na linha 13

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

public class Tratador implements ActionListener{
	private JButton b1, b2, b3;
       
        public Tratador(){}

	public Tratador(JButton ba, JButton bb, JButton bc){	
		b1 = ba;
		b2 = bb;
		b3 = bc;
	}//faltou

public void actionPerformed(ActionEvent acao){
	 if(acao.getSource() == b1) {     
        JOptionPane.showMessageDialog(null,"OK, CADASTRADO COM SUCESSO"); 
                        
        } else{
        	 if(acao.getSource() == b2) {    
        JOptionPane.showMessageDialog(null,"OK, OK, EXCLUÍDO COM SUCESSO");  
                       
        }else{
        	 if(acao.getSource() == b3) {    
        JOptionPane.showMessageDialog(null,"OK, AGUARDE A CONSULTA");  
                       
        }else{
        	  System.exit(0); 
                       
          }
        }
      }
  }
}
DANIEL35

Correto, os erros acabaram, mas as mensagens dos botões não estão aparecendo. Já compilei aqui, e não entendi o porquê disso acontecer. Tem como dar uma ajuda?

sandro.ci02

Agora acho que ta legal.
Abraço.
:slight_smile:

import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PainelControle extends JPanel{
	private static final long serialVersionUID = 1L;
	private JButton b1, b2, b3, b4;
	private JTextField c1, c2, c3, c4, c5, c6, c7;
	private JLabel l1, l2, l3, l4, l5, l6, l7;
	private JPanel p1, p2;
	private Tratador tr;

	public PainelControle(){
		p1 = new JPanel();
		p2 = new JPanel();
		p1.setLayout(new GridLayout(0,2,0,6));
		p2.setLayout(new GridLayout(0,2,2,8));
			
		l1 = new JLabel ("nome:");
		l2 = new JLabel ("endereço:");
		l3 = new JLabel ("bairro:");
		l4 = new JLabel ("cep:");
		l5 = new JLabel ("cidade:");
		l6 = new JLabel ("profissão:");
		l7 = new JLabel ("modalidade física:");
		c1 = new JTextField (15);
		c2 = new JTextField (15);
		c3 = new JTextField (15);
		c4 = new JTextField (15);
		c5 = new JTextField (15);
		c6 = new JTextField (15);
		c7 = new JTextField (15);
		p1.add(l1);
		p1.add(c1);
		p1.add(l2);
		p1.add(c2);
		p1.add(l3);
		p1.add(c3);
		p1.add(l4);
		p1.add(c4);
		p1.add(l5);
		p1.add(c5);
		p1.add(l6);
		p1.add(c6);
		p1.add(l7);
		p1.add(c7);
		
		b1 = new JButton("INCLLUIR");
		b2 = new JButton("EXCLUIR");
		b3 = new JButton("CONSULTAR");
		b4 = new JButton("SAIR");
		
		tr = new Tratador(b1,b2,b3); // passa para o tratador a referencia dos objetos para futura comparação
		
		b1.addActionListener(tr);
		b2.addActionListener(tr);
		b3.addActionListener(tr);
		b4.addActionListener(tr);
		b1.setForeground(Color.blue);
		b2.setForeground(Color.blue);
		b3.setForeground(Color.blue);
		b4.setForeground(Color.black);
		p2.add(b1);
		p2.add(b2);
		p2.add(b3);
		p2.add(b4);
		
		setLayout(new GridLayout(2, 0));
		add(p1);
		add(p2);
	}
}
DANIEL35

Beleza, obrigado.

java_aly

Caro DANIEL35
se o problema foi realmente resolvido
edite seu tópico com a expressão
[RESOLVIDO] no final para uma
melhor organização.

:idea:

DANIEL35

RESOLVIDO:
classe PainelControle

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

public class PainelControle extends JPanel{
	private JButton b1, b2, b3, b4;
	private JTextField c1, c2, c3, c4, c5, c6, c7;
	private JLabel l1, l2, l3, l4, l5, l6, l7;
	private JPanel p1, p2;
	private Tratador tr;

	public PainelControle(){
		p1 = new JPanel();
		p2 = new JPanel();
		p1.setLayout(new GridLayout(0,2,0,6));
		p2.setLayout(new GridLayout(0,2,2,8));
			
		l1 = new JLabel ("nome:");
		l2 = new JLabel ("endereço:");
		l3 = new JLabel ("bairro:");
		l4 = new JLabel ("cep:");
		l5 = new JLabel ("cidade:");
		l6 = new JLabel ("profissão:");
		l7 = new JLabel ("modalidade física:");
		c1 = new JTextField (15);
		c2 = new JTextField (15);
		c3 = new JTextField (15);
		c4 = new JTextField (15);
		c5 = new JTextField (15);
		c6 = new JTextField (15);
		c7 = new JTextField (15);
		p1.add(l1);
		p1.add(c1);
		p1.add(l2);
		p1.add(c2);
		p1.add(l3);
		p1.add(c3);
		p1.add(l4);
		p1.add(c4);
		p1.add(l5);
		p1.add(c5);
		p1.add(l6);
		p1.add(c6);
		p1.add(l7);
		p1.add(c7);
		
		b1 = new JButton("INCLLUIR");
		b2 = new JButton("CONSULTAR");
		b3 = new JButton("EXCLUIR");
		b4 = new JButton("SAIR");
		tr = new Tratador(b1,b2,b3); // passa para o tratador a referencia dos objetos para futura comparação  
		
		b1.addActionListener(tr);
		b2.addActionListener(tr);
		b3.addActionListener(tr);
		b4.addActionListener(tr);
		b1.setForeground(Color.blue);
		b2.setForeground(Color.blue);
		b3.setForeground(Color.blue);
		b4.setForeground(Color.black);
		p2.add(b1);
		p2.add(b2);
		p2.add(b3);
		p2.add(b4);
		
		setLayout(new GridLayout(2, 0));
		add(p1);
		add(p2);
	}
}

RESOLVIDO
classe Tratador:

import java.awt.event.*;  
import javax.swing.*; 
import java.awt.*;
  
public class Tratador implements ActionListener{ 
	private JButton b1, b2, b3;  
	public Tratador(){}   
    public Tratador(JButton ba, JButton bb, JButton bc){      
        b1 = ba;  
        b2 = bb;  
        b3 = bc;  
  }
  
    public void actionPerformed(ActionEvent acao){    
        if(acao.getSource() == b1) {    
        JOptionPane.showMessageDialog(null,"OK, CADASTRADO COM SUCESSO");  
                       
        } else {    
            if(acao.getSource() == b2) {    
                JOptionPane.showMessageDialog(null,"AGUARDE A CONSULTA");    
                    
            } else {    
                if(acao.getSource() == b3) {    
                    JOptionPane.showMessageDialog(null,"OK, EXCLUÍDO COM SUCESSO");    
                        
                } else {  
                System.exit(0);  
                        
                }    
            }    
        }   
    }    
  }
blackfalcon

Edita o topico e diga que esta resolvido amigo.

Abraços

DANIEL35

então, não foi o que fiz acima? está errado?

DANIEL35

não está certo da maneira que fiz acima?

Criado 9 de maio de 2010
Ultima resposta 10 de mai. de 2010
Respostas 16
Participantes 5