Probleminha

6 respostas
digolipertte
Oi pessoal to com um pequeno problema.. Eu to fazendo um programinha pra cadastro e quando eu cadastro a primeira vez tudo bem, mas quando eu vou cadastrar novamente aparece esse erro aki: at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) vou postar o meu codigo, se tiver algum erro me ajudem...
package Modelo;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

import Banco.Conect;
import Modelo.TelaPrinciapal.Evento;

public class CadastroCliente extends JFrame{
	JLabel nome = new JLabel("NOME");
	JLabel nasc = new JLabel("DATA DE NASCIMENTO"); // Rotulos!
	JLabel tel = new JLabel("TELEFONE");
	JLabel email = new JLabel("E-MAIL");
	JLabel endereco = new JLabel("ENDEREÇO");
	JLabel bairro = new JLabel("BAIRRO");
	JLabel aviso = new JLabel("OBS. O CAMPO DO CPF É OBRIGATORIO!");
	
	JLabel cidade = new JLabel("CIDADE");
	JLabel estado = new JLabel("ESTADO");
	JLabel pais = new JLabel("PAIS");
	JLabel cep = new JLabel("CEP");
	JLabel cpf = new JLabel("CPF");
             
	
	JTextField jnome = new JTextField();
	JTextField jnasc;              // Textfield com mascara.
	JTextField jtel;
	JTextField jemail = new JTextField(); // Caixas de texto!
	JTextField jendereco = new JTextField();
	JTextField jbairro = new JTextField();
	JTextField jcidade = new JTextField();
	JTextField jestado = new JTextField();
	JTextField jpais = new JTextField();
	JTextField jcep = new JTextField();
	JTextField jcpf = new JTextField();
	
	JButton ok = new JButton("CADASTRA");
	JButton cancela = new JButton("CANCELA");
	
	MaskFormatter mnasc , mtel , mcpf; // Mascara.
	
	JRadioButton jb1 =new JRadioButton("MASCULINO");
	JRadioButton jb2 =new JRadioButton("FEMININO");
	ButtonGroup grupo = new ButtonGroup();
	String a;
	
	JOptionPane j = new JOptionPane();
	private JFormattedTextField mn;
	
	public CadastroCliente(){
		setLayout(null);
		setVisible(true);
		setSize(600,335);
		setResizable(false);
        
		
		getContentPane().add(nome);
		getContentPane().add(nasc);
		getContentPane().add(tel);
		getContentPane().add(email);
		getContentPane().add(endereco);
		getContentPane().add(cidade);
		getContentPane().add(estado);
		getContentPane().add(pais);
		getContentPane().add(cep);
		getContentPane().add(cpf);
		getContentPane().add(jnome);
		getContentPane().add(bairro);
		getContentPane().add(jbairro);
	    getContentPane().add(aviso);
		
		getContentPane().add(jemail);
		getContentPane().add(jendereco);
		getContentPane().add(jcidade);
		getContentPane().add(jestado);
		getContentPane().add(jpais);
		getContentPane().add(jcep);
	
		
		nome.setSize(80, 20);
		nome.setLocation(10, 20);
		
		jnome.setSize(300, 20);
		jnome.setLocation(50,20);
		
		nasc.setSize(150,40);
		nasc.setLocation(355,10 );

		aviso.setSize(300,20);
		aviso.setLocation(280,280);
		
		tel.setSize(80,20);
		tel.setLocation(10,60);
		
		
		
		email.setSize(100,20);
		email.setLocation(250,60);
		
		jemail.setSize(280, 20);
		jemail.setLocation(300,60);
		
		endereco.setSize(100, 20);
        endereco.setLocation(10,100);
        
        jendereco.setSize(500,20);
        jendereco.setLocation(80,100);   	
        
        bairro.setSize(100,20);
        bairro.setLocation(10,140);
        
       jbairro.setSize(250,20);
        jbairro.setLocation(60,140);
        
        cidade.setSize(100,20);
        cidade.setLocation(320,140);
        
        jcidade.setSize(210,20);
        jcidade.setLocation(370,140);
        
		estado.setSize(100,20);
		estado.setLocation(10,170);
		
		jestado.setSize(240,20);
		jestado.setLocation(70,170);
		
		pais.setSize(100,20);
		pais.setLocation(330,170);
        
		jpais.setSize(210,20);
		jpais.setLocation(370,170);
        
		
		cpf.setSize(40,20);
		cpf.setLocation(10,200);
		
		
        
		
		getContentPane().add(ok);
		getContentPane().add(cancela);
		
		
		ok.setSize(150,40);
		ok.setLocation(200,220);
		ok.addActionListener(new Evento());
		
		cancela.setSize(210,40);
		cancela.setLocation(370,220);
		cancela.addActionListener(new Evento());
		
		JPanel p = new JPanel();
		grupo.add(jb1);
		grupo.add(jb2);
		p.setBorder(BorderFactory.createEtchedBorder());
		p.setBounds(10, 230, 100,70 );
		p.add(jb1);
		p.add(jb2);
		
		
		
		
		
		getContentPane().add(p);

		
		
		
		
		try {
			mnasc = new MaskFormatter("##/##/####");
			mtel = new MaskFormatter("(##) #### - ####");
			mcpf = new MaskFormatter("###########");
		} catch (ParseException e) {
			System.out.println("Erro na mascra");
			e.printStackTrace();
		}
		
		mnasc.setPlaceholder("");
		jnasc = new JFormattedTextField(mnasc);
		getContentPane().add(jnasc);
		jnasc.setSize(80,20);
		jnasc.setLocation(500,20);
		jnasc.setVisible(true);
		jnasc.setText("00000000");
		mnasc.setValidCharacters("[telefone removido]");
		
		mtel.setPlaceholder("");
		jtel = new JFormattedTextField(mtel);
		getContentPane().add(jtel);
		jtel.setSize(150,20);
		jtel.setLocation(70,60);
        jtel.setVisible(true);	
        jtel.setText("[telefone removido]");
        mtel.setValidCharacters("[telefone removido]");
        
        mcpf.setPlaceholder("");
        jcpf = new JFormattedTextField(mcpf);
    	getContentPane().add(jcpf);
		jcpf.setSize(150,20);
		jcpf.setLocation(40,200);
        jcpf.setVisible(true);
        jcpf.setText("[telefone removido]");
		mcpf.setValidCharacters("[telefone removido]");
	}
	

	 class Evento implements ActionListener{
		
		 public void actionPerformed(ActionEvent e){
		
			
			
	    	 if (e.getSource() == ok ){
				
	    	 cadastra(); // responsavel pelo cadastro de clientes.
	    	 
	    	 }
			
			
			
			if ( e.getSource() == cancela){
				limpa();
			}
	     }
		 
		 

	}
	 
 public void limpa(){
	
	 jnome.setText("m ");
		jnasc.setText("00000000 ");
		jtel.setText("[telefone removido] ");
		jemail.setText(" ");
		jendereco.setText(" ");
		jbairro.setText(" ");
		jcidade.setText(" ");
		jestado.setText(" ");
		jpais.setText(" ");
		jcep.setText(" ");
		jcpf.setText(" ");
		
		grupo.clearSelection(); // Desfaz a seleção dos JRadioButton.
		
 }
 public void cadastra(){
	 if (jb1.isSelected()){
			a = "Masculino";
								
		}
		
		
		if(jb2.isSelected()){
			a = "Feminino";
		}
		
		Conect c;
		c = new Conect();
		c.inclui(Integer.parseInt(jcpf.getText()),jnome.getText(), jendereco.getText(), jnasc.getText(), jtel.getText(), jemail.getText(), jbairro.getText(), 
			jcidade.getText(),jestado.getText(), jpais.getText(),a);
		limpa();
		j.showMessageDialog(null,"CLIENTE CADASTRADO COM SUCESSO!" );
	
 }
}

6 Respostas

Andre_Brito

Que trampo pra analisar seu código hein?
Como é tarde da noite eu não vi direito, mas tente fazer um evento pra cada botão e não o mesmo evento para os dois.
Daí poste o novo resultado.

digolipertte
Tentei deixar um botão so no ActionListener, mas também não deu certo

Acho que o problema está esta no passar a String do JTextField para inteiro

Olha so a mensagem que da no console.

Exception in thread AWT-EventQueue-0 java.lang.NumberFormatException: For input string: [telefone removido]

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at Modelo.CadastroCliente.cadastra(CadastroCliente.java:274)

at Modelo.CadastroCliente$Evento.actionPerformed(CadastroCliente.java:228)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Exception in thread AWT-EventQueue-0 java.lang.NumberFormatException: For input string: [telefone removido]

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at Modelo.CadastroCliente.cadastra(CadastroCliente.java:274)

at Modelo.CadastroCliente$Evento.actionPerformed(CadastroCliente.java:228)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source).
B

Exatamente, [telefone removido] é maior que um número inteiro, use Long.

PS: Os Unknown Source é por que você não tem o código fonte do java para ver dentro das classes.

Paulo_Faulstich

Cara ele não consegue parsear pq ta estourando o limite do inteiro.

Se tu usar o parseDouble provavelmente funcione.

Flw

digolipertte

Obrigado pessoal…
Use o double e o parsedouble e deu certo.
Agora ta cadastrando normal.
valeu.

Paulo_Faulstich

De nada!

:smiley:

Criado 4 de maio de 2008
Ultima resposta 13 de mai. de 2008
Respostas 6
Participantes 4