Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jesus Kleiton

swing

Recommended Posts

Ola pessoal.. tudo bem?? Eu estou a tentar fazer uma tela em swing de cadastro de clientes.. ela salva o cadastro em um arquivo de classes. Mas quando eu executo e tento salvar.. o programa todo trava.. e eu nao sei o pq..

 

abaixo o ActionListener do meu botão gravar.

 

gravar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
			ClienteDAO cliDao = new ClienteDAO();
			try{
			String name = getNomeTxt().getText();
			String cic = getCpfTxt().getText();
			String tel = getTelefoneTxt().getText();
			String log = getLogradouroTxt().getText();
			String num = getNumeroTxt().getText();
			String cp = getCepTxt().getText();
			String uf = getEstadoTxt().getText();
			String dt = getDataNascimentoTxt().getText();
			int d = GerenciadorDeLayout.separaData(dt, "dia");
			int m = GerenciadorDeLayout.separaData(dt, "mes");
			int a = GerenciadorDeLayout.separaData(dt, "ano");
			boolean fu = getFumanteBox().hasFocus();
			int nu = Integer.parseInt(num);
			Endereco end = new Endereco(log,nu,cp,uf);
			cliDao.inserir(new Cliente(name,new Data(d,m,a),cic,tel,end,fu));
			}catch(NullPointerException e1){
				JOptionPane.showMessageDialog(null,"Preencha os campos corretamente");
			}
			}

 

Metodos de inserção da classe ClienteDAO

public void inserir(Object obj) {
		
		boolean x = GerenciadorArquivos.existeArquivo("cliente.dat");
		if(x){
			
			  
			  editarArquivo(eEdicao,(Cliente)obj);
		}else{
			try {
				GerenciadorArquivos.criarArquivo("cliente.dat");
				editarArquivo(eEdicao,(Cliente)obj);
			} catch (IOException e) {
				JOptionPane.showMessageDialog(null, "Não foi possivel criar o arquivo cliente.dat");
				e.printStackTrace();
			}
		}
	}

________________________________________________________________________________
______________________
ublic static void editarArquivo(boolean eEditavel, Cliente novoCliente){
		ArrayList<Cliente> leitura;
		int indiceCliente = 0;
		
		int conta = 0;
		if(GerenciadorArquivos.existeArquivo("cliente.dat")){
			try {
				leitura = (ArrayList<Cliente>)GerenciadorArquivos.abrirArquivo("cliente.dat");
				Iterator i = leitura.iterator();
				while(i.hasNext()){
					indiceCliente++;
				   if(i.next().equals(novoCliente)){
					   conta++;
					   break;
				   }
				}
				if (conta>0){
					//constatou q o cara ja existe.
					if(eEditavel){
						leitura.remove(indiceCliente);
						leitura.add(novoCliente);
					}else{
					   JOptionPane.showMessageDialog(null, "Cliente ja esta cadastrado!!!");
					}
					//não consta no cadastro
				}else{
					leitura.add(novoCliente);
				}
				
				GerenciadorArquivos.salvarArquivo(leitura, "cliente.dat");
			} catch (IOException e) {
				JOptionPane.showMessageDialog(null, "Arquivo faio!");
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				JOptionPane.showMessageDialog(null,"Classe nao encontrada");
				e.printStackTrace();
			}
			
		}
	}

e agora o metodo q separa a data do FormattedTextField e converte pra inteiro.

public static int separaData(String data,String diaMesOuAno){
		char[] dt = data.toCharArray();
		try{
		char[] dia = {dt[0],dt[1]};
		char[] mes = {dt[3],dt[4]};
		char[] ano = {dt[6],dt[7],dt[8],dt[9]};
		if(diaMesOuAno.equals("dia")){
			String aux = String.copyValueOf(dia);
			return Integer.parseInt(aux); 
		}else if(diaMesOuAno.equals("mes")){
			String aux = String.copyValueOf(mes);
			return Integer.parseInt(aux);
		}else{
			String aux = String.copyValueOf(ano);
			return Integer.parseInt(aux);
		}
		}catch(NullPointerException e){
			JOptionPane.showMessageDialog(null,"preencha a data corretamente");
			return 0;
		}

Desde já agradeço.. obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.