Erro em método de exclusão pessoal!

Fala ae galera!!!
Po… esse é meu primeiro post aqui no fórum e gostaria de conta com a ajuda de vcs em um probleminha aqui galera!!!
tipo… .estou desenvolvendo um aplicativo para um amigo meu…mas estou tentdo problemas no método de exclusão de clientes aqui…
Não estou conseguindo pegar o número do código que o usuário digita e guardar em uma variável para poder realizar a exclusão depois
!!!

O código do meu controle é esse ae!!

[code]package controle;

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

import javax.swing.JOptionPane;

import modelo.Cliente;
import visao.TelaCadCliente;
import visao.TelaExcluiCliente;
import dao.DAOCliente;
import dao.DAOFactory;

public class ControleExcluiCliente implements ActionListener {

 private TelaExcluiCliente telaExcluiCliente;


 DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
 DAOCliente dao = df.getDAOCliente();
 Cliente cliente = new Cliente();
 private String codigo;
 
 
 public ControleExcluiCliente (TelaExcluiCliente telaExcluiCliente){
	 
	 this.telaExcluiCliente = telaExcluiCliente;
	 telaExcluiCliente.setOuvinte(this);

 }// fim do construtor

 
 public void consultarExclusao(){
		try{
			/*Estou com problemas aqui galera... quando manda a minha variável código
			 * receber o número que o cara me mandou e guardar para eu usar no meu método ActionPerformed
			 * acima ele está indo como null... mas quando faço o debug a variável codigo está recebendo sim o valor
			 * mas por algum motivo ela está perdendo esse valor quando chamo no método acima...
			 * tipo como se estivesse criando uma nova instância da mesma!!!
			 */
			codigo = JOptionPane.showInputDialog(null,"Digite o número do código do cliente","Exclusão de Cliente", JOptionPane.QUESTION_MESSAGE);
			cliente.setCodigo(codigo);
			dao.consultar(cliente);
		    
			if (cliente.getNome() != null){
				TelaExcluiCliente tela = new TelaExcluiCliente();
				ControleExcluiCliente controle = new ControleExcluiCliente(tela);
				tela.setSize(800,600);
				tela.setVisible(true);
				tela.setLocation(200,200);
				
				tela.setDados(cliente);
			
			}
			
		}
		
		catch (Exception e){
			JOptionPane.showMessageDialog(null, "Código não encontrado!!!","ERRO",JOptionPane.ERROR_MESSAGE);

			
		}
 
 }
 
 public void actionPerformed(ActionEvent evt) {
	
	String comando = evt.getActionCommand();
	
	if (comando.equals("sair")){
		fechar();
	
	}
	if (comando.equals("excluir")){
		
		Object [] opcoes = {" Sim "," Não "};
		int n = JOptionPane.showOptionDialog(null, "Você tem certeza de que deseja excluir o cliente selecionado?", "Confirmar Exclusão", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[0]);
			// é bem aqui amigos... tenho que bolar um código para setar o meu código pois dessa maneira não está indo!
                                            //Vejam se estou fazendo algo de errado com as instâncias dos controles... parece que ele está criando novas cópias das variáveis por isso está zerando!!
		if (n==0){
			dao.consultar(cliente);
			cliente.setCodigo(eu);
			
			if (cliente.getCodigo()==null){
				JOptionPane.showMessageDialog(null,"MERDA "+cliente.getCodigo());
			}
			dao.excluir(cliente);
			fechar();
			
		}
		
		
	}
}

public void fechar (){
	
	telaExcluiCliente.dispose();
}

public String getCodigo(){
return codigo;
}

}[/code]

E tipo galera… .estou fazendo a chamada do meu controleExcluiCliente na classe ControleCadCliente da seguinte maneira!!


package controle;

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

import javax.swing.JOptionPane;

import modelo.Cliente;
import visao.TelaCadCliente;
import visao.TelaConsultaCliente;
import visao.TelaExcluiCliente;
import dao.DAOCliente;
import dao.DAOFactory;


public class ControleCadCliente implements ActionListener {

		
		 private TelaCadCliente tela ;	
		 private TelaConsultaCliente telaConsulta = new TelaConsultaCliente();
		 private TelaExcluiCliente telaExcluiCliente = new TelaExcluiCliente();
		 DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
		 DAOCliente dao = df.getDAOCliente();

 

 	public ControleCadCliente(TelaCadCliente tela){
 		
 				
		this.tela = tela;
		
		//ativa os Listeners
		tela.setOuvinte(this);
 	}


	public void actionPerformed(ActionEvent evt) {
		
		String comando = evt.getActionCommand();
		
		if (comando.equals("sair")){
			fechar();
		 }
		 else
			 if (comando.equals("cadastrar")){
				
				 if (tela.verificaCampos(tela.getCamposOk())){
					try{
						 Cliente cliente = new Cliente();
						 ControleCadCliente controle = new ControleCadCliente(tela);
						 TelaCadCliente cl = new TelaCadCliente();
						 
						 tela.mudaDados(cliente);
						 
												 
						 dao.cadastrar(cliente);
						 JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso!","Cadastro de cliente",JOptionPane.INFORMATION_MESSAGE);
						 tela.limpaCampos();
					
					}
				 
					catch (Exception e){
						JOptionPane.showMessageDialog (null, "Erro durante a gravação do novo cliente! :"+e,"ERRO",JOptionPane.ERROR_MESSAGE);
						}
					
					}
				 
				 
				 
				 else
					 JOptionPane.showMessageDialog (null, "Os campos sinalizados com  *  são de preenchimento obrigatório!", "ATENÇÂO", JOptionPane.WARNING_MESSAGE);
			 }
		

		if (comando.equals("consultar")){
			
			ControleConsultaCliente ctrlConsultaCliente = new ControleConsultaCliente(telaConsulta);
			ctrlConsultaCliente.consultar();
			}
		else
		if (comando.equals("excluir")){
		  /* Aqui está sendo feita a chamda para o controle e também para método que falei acima 
			 * 
			 */

 ControleExcluiCliente controleExcluiCliente = new ControleExcluiCliente(telaExcluiCliente);
		   controleExcluiCliente.consultarExclusao();	
		}
		else
		if (comando.equals("alterar")){
			
			
		}
		else
			if (comando.equals("limpar")){
				tela.limpaCampos();
			}
			
	} 
	
	
	public void fechar (){
		tela.dispose();
	}

	
	
}

Me ajuda ae galeraaaa!!!
Um abraço a todos!

onde dá o erro ?

tem o log do erro ?

manda o stacktrace

Olá amigo!!!

Bom o erro é que ele não está pegando as informações do código do cliente!!
Ae não estou tendo como setar minha classe dao para excluir o cara lá!!!
Esse método consultarExclusão é para ver se realmente o cara existe… ele existindo eu crio o controle e também a tela…
Mas só que não estopu conseguindo pegar o valor que foi digitado pelo usuário!!!
Ele está fazendo a consulta normalmente… tá vendo lá se o cara existe ou não… mas na hora que tento usar essa variável código novamente para excluir o cara ela já tá como null… Acho que é porque to criando duas instâncias do meu controile… mas não to sabendo como posso mudar o código!!!
Me ajuda ae galeraaa!!!
Um abraço a todos!!

[quote=andre_bento]codigo = JOptionPane.showInputDialog(null,"Digite o número do código do cliente","Exclusão de Cliente", JOptionPane.QUESTION_MESSAGE); cliente.setCodigo(eu);[/quote]

o que que é esse “eu” do cliente.setCodigo(eu)??? não seria o “codigo” que você deve setar ali???

p.s.: desculpe-me se disse alguma besteira…

blz mas que é “eu” hehehe sem gozação é que ficou engraçado a pergunto.

cliente.setCodigo(eu);

Olá amigo!!!
É sinm… eu consertei depois aqui… desculpe!!
MAs o erro persiste…
Obrigado pela ajuda!!!

blz mas ser for sim

não pode entrar nesse if

if (cliente.getCodigo()==null)

Pois é amigo!!!Ele está caindo no if toda vez que tento executar!!!
Fiz o debug e vi que no método consultarExclusao ele está sendo preenchido corretamente… mas quando vou tentar pegar o valor ali em cima ele já tá null!!! :oops: :oops: :oops: :!: :!: :!: :oops:
Abração!

Ajuda ae galeraaaaaaaaaaa!!!
Pleeeease!!!

UUUUP!!

[quote=andre_bento]Pois é amigo!!!Ele está caindo no if toda vez que tento executar!!!
[/quote]

Brow impossível

e além disso vc não pode falar pro cara digitar o código pra exclusão ?

se o cara digitar errado ? vai excluir outro ?

Ele te que digitar aí vc pergunta pra ele se ele tem certeza que quer deletar aquele cara…

ai vc tem o id

Olá amigo!!
Não tipo… Quando o cara digita o código para exclusão eu faço uma busca no sistema… e depois se eu achei o cara eu exibo uma tela com todos os dados do cliente para a visualização do usuário e com um botão de confirmar exclusão e um de cancelar!!
Modifiquei um pouco meu código mas até agora nada galera… deem uma olhada!!

Esse é o código do ControleExcluiCliente

package controle;

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

import javax.swing.JOptionPane;

import modelo.Cliente;
import visao.TelaCadCliente;
import visao.TelaExcluiCliente;
import dao.DAOCliente;
import dao.DAOFactory;
 
public class ControleExcluiCliente implements ActionListener {

	 String codigoExclusao;
	 private TelaExcluiCliente telaExcluiCliente;
	 Cliente cliente = new Cliente();
	
	 DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
	 DAOCliente dao = df.getDAOCliente();
	
	 TelaCadCliente tela ;
	 ControleCadCliente cCliente ;
	 private String eu;
	 
	 
	 public ControleExcluiCliente (TelaExcluiCliente telaExcluiCliente){
		 
		 this.telaExcluiCliente = telaExcluiCliente;
		 telaExcluiCliente.setOuvinte(this);
		 
	 }// fim do construtor
	
	 
	 	 
	 public void actionPerformed(ActionEvent evt) {
		
		String comando = evt.getActionCommand();
		
		if (comando.equals("sair")){
			fechar();
		
		}
		if (comando.equals("excluir")){
			 
			
			 Object [] opcoes = {" Sim "," Não "};
			 int n = JOptionPane.showOptionDialog(null, "Você tem certeza de que deseja excluir o cliente selecionado?", "Confirmar Exclusão", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[0]);
 			
			if (n==0){
/*Po.. .aqui está o erro... eu só mandei uma pergunta por usuário perguntando 
			 * se ele gostaria realmente de excluir o cara... To pegando a opção e tratando ela..
			 * Mas o erro está no seguinte... no método consultarExclusao abaixo ele está setando todos os valores 
			 * corretamente... mas quando chamo a variável codigoExclusaor que é a 
			 * que estou utilizando para guardar o código digitado, ela já está null!!!
			 * Agora eu não sei por quê!! Já torrei os miolos aqui mas não descubro o porque dela estar nula!
			 * Estava debugando e não consegui achar o erro... por eu crio o meu controle na classe ControleCadCliente
			 * onde meu menu está... ae depois de criar o controle eu apenas chmo esse método...
			 * 
			 */


						cliente.setCodigo(codigoExclusao);		
				if (cliente.getCodigo()==null){
					JOptionPane.showMessageDialog(null,"MERDA "+cliente.getNome());
				}
				dao.excluir(cliente);
				fechar();
				
			}
			
			
		}
	} 
	
	
	 public void fechar (){
		
		telaExcluiCliente.dispose();
	}
	
	 
	 public void consultarExclusao(){
			try{
					
				codigoExclusao = JOptionPane.showInputDialog(null,"Digite o número do código do cliente","Exclusão de Cliente", JOptionPane.QUESTION_MESSAGE);
				cliente.setCodigo(codigoExclusao);
				cliente=dao.consultar(cliente); 
			  
				if (cliente.getNome() != null){
					TelaExcluiCliente tela = new TelaExcluiCliente();
					ControleExcluiCliente controle = new ControleExcluiCliente(tela);
					tela.setSize(800,600);
					tela.setLocation(200,200);
					tela.setVisible(true);
					
					tela.setDados(cliente);
					codigoExclusao = cliente.getCodigo();
				
				}
				
			}
			
			catch (Exception e){
				JOptionPane.showMessageDialog(null, "Código não encontrado!!!","ERRO",JOptionPane.ERROR_MESSAGE);

				
			}
			
	 }
	


}

Agora o código da classe onde estou chamando meu controleExcluiCliente!!


package controle;

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

import javax.swing.JOptionPane;

import modelo.Cliente;
import visao.TelaAlterarCliente;
import visao.TelaCadCliente;
import visao.TelaConsultaCliente;
import visao.TelaExcluiCliente;
import dao.DAOCliente;
import dao.DAOFactory;


public class ControleCadCliente implements ActionListener {
	
		private String codigo,codigoExclusao;
		 private TelaCadCliente tela ;	
		 private TelaConsultaCliente telaConsulta = new TelaConsultaCliente();
		 private TelaExcluiCliente telaExcluiCliente = new TelaExcluiCliente();
		 private TelaAlterarCliente telaAlterarCliente = new TelaAlterarCliente();
		 //Cliente cliente = new Cliente();
		 DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
		 DAOCliente dao = df.getDAOCliente();
		 Cliente cliente1 = new Cliente();
 

 	public ControleCadCliente(TelaCadCliente tela){
 		
 				
		this.tela = tela;
		
		//ativa os Listeners
		tela.setOuvinte(this);
 	}


	public void actionPerformed(ActionEvent evt) {
		
		String comando = evt.getActionCommand();
		
		if (comando.equals("sair")){
			fechar();
		 }
		 else
			 if (comando.equals("cadastrar")){
				
				 if (tela.verificaCampos(tela.getCamposOk())){
					try{
						 Cliente cliente = new Cliente();
						 ControleCadCliente controle = new ControleCadCliente(tela);
						 TelaCadCliente cl = new TelaCadCliente();
						 
						 tela.mudaDados(cliente);
						 
												 
						 dao.cadastrar(cliente);
						 JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso!","Cadastro de cliente",JOptionPane.INFORMATION_MESSAGE);
						 tela.limpaCampos();
					
					}
				 
					catch (Exception e){
						JOptionPane.showMessageDialog (null, "Erro durante a gravação do novo cliente! :"+e,"ERRO",JOptionPane.ERROR_MESSAGE);
						}
					
					}
				 
				 
				 
				 else
					 JOptionPane.showMessageDialog (null, "Os campos sinalizados com  *  são de preenchimento obrigatório!", "ATENÇÂO", JOptionPane.WARNING_MESSAGE);
			 }
		

		if (comando.equals("consultar")){
			
			ControleConsultaCliente ctrlConsultaCliente = new ControleConsultaCliente(telaConsulta);
			ctrlConsultaCliente.consultar();
			}
		else
		if (comando.equals("excluir")){
		   /*Aqui está sendo feita a chamada para meu controleExcluiCliente e também a chamada do método
		     * consultarExclusao() para que o usuário digite o número do código do cliente desejado
		     * 
		     */

                                    ControleExcluiCliente controleExcluiCliente = new ControleExcluiCliente(telaExcluiCliente);
		    controleExcluiCliente.consultarExclusao();
		}
		else
		if (comando.equals("alterar")){
			
			consultarAlteracao(getCodigo());
		}
			
		
		else
			if (comando.equals("limpar")){
				tela.limpaCampos();
			}
			
	} 
	
	
	public void fechar (){
		tela.dispose();
	}

	
	
	 public String consultarAlteracao(String codigo){

		 try{
			    Cliente cliente = new Cliente();
				codigo = JOptionPane.showInputDialog(null,"Digite o número do código do cliente","Alteração de Cliente", JOptionPane.QUESTION_MESSAGE);
				cliente.setCodigo(codigo);
				dao.consultar(cliente);
			    
				if (cliente.getNome() != null){
					TelaAlterarCliente tela = new TelaAlterarCliente();
					ControleAlterarCliente controle = new ControleAlterarCliente(tela);
					tela.setSize(800,600);
					tela.setVisible(true);
					tela.setLocation(200,200);
					
					tela.setDados(cliente);
				
				}
				
			}
			
			catch (Exception e){
				JOptionPane.showMessageDialog(null, "Código não encontrado!!!","ERRO",JOptionPane.ERROR_MESSAGE);

				
			}
			
	 	
		 
		 return codigo;
	 }
	
	
	
	
	public String getCodigo(){
		codigoExclusao = cliente1.getCodigo();
		return codigoExclusao;
	}
}

Por favor pessoal!!! Ajuda aeeeeeeeee!!

tah um pouco confusa a lógica.

mas parece que seu contrutur ta estranho

public ControleExcluiCliente (TelaExcluiCliente telaExcluiCliente){   
           
         this.telaExcluiCliente = telaExcluiCliente;   
         telaExcluiCliente.setOuvinte(this);   
           
     }// fim do construtor   

vc ta setando o telaExcluicliente nela mesmo

e depois chama de novo consultarExclusao a confirmação…

 codigoExclusao = JOptionPane.showInputDialog(null,"Digite o número do código do cliente","Exclusão de Cliente", JOptionPane.QUESTION_MESSAGE);   
                cliente.setCodigo(codigoExclusao);   

Nesse techo:

ControleExcluiCliente controleExcluiCliente = new ControleExcluiCliente(telaExcluiCliente);   
controleExcluiCliente.consultarExclusao();   

nãop deveria passar o parametro direto ?

tipo assim ?

ControleExcluiCliente controleExcluiCliente = new ControleExcluiCliente();   
controleExcluiCliente.consultarExclusao(telaExcluiCliente);   

Olá amigo!!!

Meu método consultarExclusao() é somente para fazer uma busca… .e por isso não passei parâmetros nele… O meu controle recebe como parâmetro minha tela… e meu método não pega parâmetros…
Mas em que parte estou chmando denovo o método consultarExclusao ???

Muito obrigado pela ajuda… desculpa se não fui claro em alguma coisa ae :D!!!
Abração!

Amigo!!
Acho que to sacando o problema…
tipo… .eu coloquei meu método consultarExclusao() para ser chamado dentro do construtor da minha classe ControleExcluiCliente; eu consegui excluir o cliente… mas agora o erro é que toda hora fica aparecendo o InputDialog para eu entrar com o código do cliente!!!
Porque dentro do meu método consultarExclusao() eu crio um objeto do meu controle…
Onde posso criar meu controle para acabar com isso???
Não sei se essa ´[e a maneira certa de resolver o problema!!
Valeu pela ajuda Focão!!

boa andre_bento

eu odeio contrutores…

só uso pra PK

bom FDS

boa andre_bento

eu odeio contrutores…

só uso pra PK

bom FDS

Pois é amigo!!
Eu também só utilizo meus construtores para inicialização de variáveis e tals… Como a facul ensina11heheheheh
MAs tipo cara… .pude sacar que o erro está justamente quando quando eu estava fazendo a chamada do método consultarExclusao() pela outra classe!!
Tipo que ele chamava meu método lá na classe ControleExcluiCliente, mas quando voltava pra classe ControleCadCliente ele já perdia todos os valores!!
Agora to tentando descobrir o porque isso está ocorrendo… pois não faço a mínima idéia!!!
kkkkkkkkkkkkkk
Valeu cara… abraços!!!

UUUUUUUUP!!!

Help guys!!!
PLeeeeeeeease!

Põe o DAO aí cara… pra darmos uma olhada…

Falows :wink: