Duvida - Como fazer operações com ArrayList?

1 resposta
E

Oi pessoal me chamo gilvane,pesquisei em todo fórum algum caso que fosse igual ao meu,infelizmente não encontrei.
Eu preciso criar uma aplicação em Java que rode um menu(em JOptionPane) que ofereça as opções de cadastro de contatos(agenda telefonica) edição dos mesmos e exclusão, o projeto tem tres classes uma chamada metodos(com as operacoes de excluir add,etc) uma de campos(que recebe os atributos do contato) e uma principal que inicializa a aplicação,eu praticamente fiz tudo..sei que pode ta errado do inicio ao fim,só precisava de ajuda na questão das operações pois no meu projeto tentei fazer do modo que estava em outros tópicos(usando metodos get e set) porém eu não consegui mesmo os mesmos estando encapsulados na classe campos.Obrigado pela ajuda.

segue o codigo de cada classe.

Classe principal
import javax.swing.*;
public class principal
{
	public static void main(String[]args)
	{
				String opcao = JOptionPane.showInputDialog("MENU:"+"\n"+"\n"+
				"1.Inclusão do telefone"+"\n"+
				"2.Alteração de dados"+"\n"+
				"3.Exclusão de telefone"+"\n"+
				"4.Consultar por nome"+"\n"+
				"5.Sair"+"\n"+"\n"+"\n"+
				"6.Teste"+"\n"+
				"Digite a opção:"
				
				);
		if(opcao.equals("1"))
		{
			metodos m = new metodos();
			m.cadastro();
		}
		
		if(opcao.equals("2"))
		{
			metodos m = new metodos();
			m.alterar();
		}
		
		if(opcao.equals("3"))
		{
			metodos m = new metodos();
			m.excluir();
		}
		
		if(opcao.equals("4"))
		{
			metodos m = new metodos();
			m.pesquisar();
		}
		
		if(opcao.equals("5"))
		{
			metodos m = new metodos();
			m.sair();
		}
	}
}
Classe metodos
import java.util.ArrayList;

import javax.swing.JOptionPane;

public class metodos extends campos
{	
	ArrayList dados = new ArrayList();
	campos dadosUsuario = new campos();
	String resp;
	public void cadastro()
	{
		do {
		
		dadosUsuario.setNome(JOptionPane.showInputDialog("Qual o nome do cliente?"));
		dadosUsuario.setTelefone(JOptionPane.showInputDialog("Qual o telefone do cliente?"+"\n"+"(Somente números)"));
		dadosUsuario.setEndereco(JOptionPane.showInputDialog("Qual o endereço do cliente?"));
		dadosUsuario.setCep(JOptionPane.showInputDialog("Qual o CEP do cliente?"+"\n"+"(Somente números)"));
		dados.add(dadosUsuario);
		resp = JOptionPane.showInputDialog("Deseja efetuar outro cadastro?"+"\n"+"\n"+"1.Sim"+"\n"+"2.Não"+"\n"+"\n"+"Digite sua opção:");
		   }
		while(resp.equals("1"));
		if(resp.equals("2"))
		{
			principal pr = new principal();
			pr.main(null);
		}
	}
	
	public void alterar()
	{
		String pesquisa = JOptionPane.showInputDialog("Digite o telefone da pessoa que deseja alterar os dados"+"\n"+"(Somente números)");
		for(int i = 0; i<= dados.size();i++)
		{
			if(dados.get(i).equals(pesquisa))
			{
				this.setNome(JOptionPane.showInputDialog("Qual o nome do cliente?"));
				this.setEndereco(JOptionPane.showInputDialog("Qual o endereço do cliente?"));
				this.setCep(JOptionPane.showInputDialog("Qual o CEP do cliente?"+"\n"+"(Somente números)"));
			}
		}
	}
	
	public void excluir()
	{
		String pesquisa = JOptionPane.showInputDialog("Digite o telefone da pessoa que deseja excluir os dados"+"\n"+"(Somente números)");
		for(int i = 0; i<= dados.size();i++)
		{
			if(dados.get(i).equals(pesquisa))
			{
				dados.remove(this.getNome());
				dados.remove(this.getEndereco());
				dados.remove(this.getCep());
				dados.remove(this.getTelefone());
			}
		}
	}
	
	public void pesquisar()
	{
		String pesquisa = JOptionPane.showInputDialog("Digite o telefone da pessoa que deseja pesquisar os dados"+"\n"+"(Somente números)");
		for(int i = 0; i<= dados.size();i++)
		{	
			if(dados.get(i).equals(this.getTelefone()))
			{
				JOptionPane.showMessageDialog(null, this.getNome());
				JOptionPane.showMessageDialog(null, this.getEndereco());
				JOptionPane.showMessageDialog(null, this.getCep());
				JOptionPane.showMessageDialog(null, this.getTelefone());
			}
			
			else
			{
				JOptionPane.showMessageDialog(null, "Telefone não encontrado!");
			}
			
		}
	}
	public void sair()
	{
		System.exit(0);
	}
}
Classe campos
import java.util.ArrayList;

public class campos
{
	private String Nome;
	private String  Telefone;
	private String Endereco;
	private String Cep;
	
	public campos()
	{
		
	}
	
	
	
	
	
	public void setNome(String Nome){
		Nome=Nome;
	}
	
	public String getNome(){
		return Nome;
	}
	
	public void setTelefone(String Telefone)
	{
		Telefone = Telefone;
	}
	
	public String getTelefone()
	{
		return Telefone;
	}
	
	public void setEndereco(String Endereco)
	{
		Endereco = Endereco;
	}
	
	public String getEndereco()
	{
		return Endereco;
	}
	
	public void setCep(String Cep)
	{
		Cep = Cep;
	}
	
	public String getCep()
	{
		return Cep;
	}
	
	
}

quando tentei executar a operação de consulta retornou o erro

1 Resposta

Luiz_Augusto_Prado

acho que vc devia colocar isso dentro de um construtor:

ArrayList dados = new ArrayList();  
    campos dadosUsuario = new campos();

outra coisa… acho que isso pode estar errado:
for(int i = 0; i<= dados.size();i++)

deveria ser
for(int i = 0; i< dados.size();i++)

para todos os laços que encontrar

Criado 5 de novembro de 2014
Ultima resposta 5 de nov. de 2014
Respostas 1
Participantes 2