Problema com ArrayList

fala galera, preciso pesquisar em uma arraylist, mas não entra no for, pensei em usar o foreach mas não sei como…
alguem pode me ajudar… abraços a todos

public class Cliente {
	
	private int codigo;
	private String nome;
	private String cpf;
	private String endereco;
	private int numero;
	private String complemento;
	private String bairro;
	private int codigoDaCidade;
	private String cep;
	private String data_Nascimento;
	private String telefone;
	
	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public int getCodigoDaCidade() {
		return codigoDaCidade;
	}

	public void setCodigoDaCidade(int codigoDaCidade) {
		this.codigoDaCidade = codigoDaCidade;
	}

	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getData_Nascimento() {
		return data_Nascimento;
	}

	public void setData_Nascimento(String data_Nascimento) {
		this.data_Nascimento = data_Nascimento;
	}
}
public class Tela extends JFrame implements ActionListener, TableModelListener{
	
	private static final long serialVersionUID = 1L;
	
	private JButton btSalvar, btAlterar, btExcluir, btLimpar, btListar, btBuscar;
	private JTextField txNome, txEndereco, txNumero, txBairro,txComplemento, txTelefone, 
	txDtNas, txCpf, txBuscar, txCodigo, txCodigoDaCidade, txCEP;
	private JPanel pnNorte, pnCentral, pnSul;
	private JLabel lbNome, lbEndereco, lbNumero, lbBairro, lbTelefone,lbExData,
	lbDtNas, lbCpf, lbBuscar, lbBuscarNome, lbCep, lbCodigo, lbCodigoCidade, lbComplemento;
	MaskFormatter formatoData, formatoTelefone, formatoTelefone1, formatoCpf, formatoCEP;
	private JTable tabela;
	private ClienteTableModel modelo;
	
	private ArrayList<Cliente> listaClientes = new ArrayList<>();
	
	public Tela (){
		setTitle(" Cadastro ");
		setSize(550, 500);
		// PAINEL NORTE DA TELA
		pnNorte = new JPanel();
		pnNorte.setLayout(null);
		pnNorte.setBounds(0,0, 820, 160);
		pnNorte.setBackground(Color.LIGHT_GRAY);
		// PAINEL SUL DA TELA
		pnSul = new JPanel();
		pnSul.setLayout(new BorderLayout());
		pnSul.setBounds(0, 360, 820, 200);
		pnSul.setBackground(Color.LIGHT_GRAY);
		// PAINEL CENTRAL DA TELA
		pnCentral = new JPanel();
		pnCentral.setLayout(null);
		pnCentral.setBackground(Color.LIGHT_GRAY);
		// CONSTROI AS JLABEL DA TELA 
		lbNome = new JLabel(" Nome do cliente ");
		lbNome.setBounds(10, 0, 130, 30);
		lbCodigo = new JLabel(" Codigo ");
		lbCodigo.setBounds(430, 0, 130, 30);		
		lbCep = new JLabel(" CEP ");
		lbCep.setBounds(430, 50 , 130, 30);
		lbDtNas = new JLabel(" Data Nascimento ");
		lbDtNas.setBounds(180, 50, 130, 30);
		lbExData = new JLabel(" DD/MM/AAAA ");
		lbExData.setBounds(270, 75, 130, 30);
		lbCpf = new JLabel(" CPF ");
		lbCpf.setBounds(10, 50, 130, 30);
		lbEndereco = new JLabel(" Endereço ");
		lbEndereco.setBounds(10, 100, 130, 30);
		lbNumero = new JLabel(" Número ");
		lbNumero.setBounds(430, 100, 130, 30);
		lbBairro  = new JLabel(" Bairro ");
		lbBairro.setBounds(220, 150, 130, 30);
		lbComplemento  = new JLabel(" Complemento ");
		lbComplemento.setBounds(10, 150, 130, 30);
		lbCodigoCidade  = new JLabel(" Código da cidade ");
		lbCodigoCidade.setBounds(10, 200, 130, 30);
		lbTelefone = new JLabel(" Telefone ");
		lbTelefone.setBounds(220, 200, 130, 30);
		lbBuscar = new JLabel(" Pesquisar  ");
		lbBuscar.setBounds(360, 310, 150, 30);
		lbBuscarNome = new JLabel(" Localizar por nome ");
		lbBuscarNome.setBounds(10, 305, 150, 30);
		lbExData.setFont(new Font("Courier New", Font.ITALIC, 12));
		lbExData.setForeground(Color.RED);
		// ADICIONA AS JLABEL NA TELA 
		pnNorte.add(lbNome);
		pnNorte.add(lbCodigo);
		pnNorte.add(lbCpf);
		pnNorte.add(lbEndereco);
		pnNorte.add(lbDtNas);
		pnNorte.add(lbExData);
		pnNorte.add(lbNumero);
		pnNorte.add(lbCep);
		pnCentral.add(lbBairro);
		pnCentral.add(lbComplemento);
		pnCentral.add(lbCodigoCidade);
		pnCentral.add(lbTelefone);
		pnCentral.add(lbBuscarNome);
		
		try{
			// PERSONALIZA O CAMPO DE DATA
			formatoData = new MaskFormatter("## / ## / ####   ");  
	        formatoData.setPlaceholderCharacter('_');
	        // PERSONALIZA O CAMPO TELEFONE
	        formatoTelefone = new MaskFormatter(" ( ## )#### - #### ");  
	        formatoTelefone.setPlaceholderCharacter('_'); 
	        //PERSONALIZA O CAMPO CPF
	        formatoCpf = new MaskFormatter("### . ### . ### - ##");  
	        formatoCpf.setPlaceholderCharacter('_');
	        //PERSONALIZA O CAMPO CEP
	        formatoCEP = new MaskFormatter("##### - ### ");  
	        formatoCEP.setPlaceholderCharacter('_');
	        
	        
		}catch (Exception e) {  
            e.printStackTrace();  
        }
		// CONTROI AS TEXTFIELD DA TELA
		txNome = new JTextField();
		txNome.setBounds(10, 30, 370, 20);
		txCodigo = new JTextField();
		txCodigo.setBounds(430, 30, 100, 20);
		txCpf = new JFormattedTextField(formatoCpf);
		txCpf.setBounds(10, 80, 120, 20);
		txEndereco = new JTextField();
		txEndereco.setBounds(10, 130, 370, 20);
		txNumero = new JTextField();
		txNumero.setBounds(430, 130, 100, 20);
		txDtNas = new JFormattedTextField(formatoData); 
		txDtNas.setBounds(180, 80, 90, 20);
		txCEP = new JFormattedTextField(formatoCEP);
		txCEP.setBounds(430, 80, 100, 20);
		txBairro= new JTextField();
		txBairro.setBounds(220, 180, 280, 20);
		txComplemento = new JTextField();
		txComplemento.setBounds(10, 180, 150, 20);
		txTelefone = new JFormattedTextField(formatoTelefone);
		txTelefone.setBounds(200, 230, 120, 20);
		txCodigoDaCidade  = new JTextField();
		txCodigoDaCidade.setBounds(10, 230, 100, 20);
		txBuscar  = new JTextField();
		txBuscar.setBounds(130, 310, 295, 20);
		// ADICIONA OS TEXTFIELD NA TELA 
		pnNorte.add(txNome);
		pnNorte.add(txCodigo);
		pnNorte.add(txEndereco);
		pnNorte.add(txCpf);
		pnNorte.add(txNumero);
		pnCentral.add(txDtNas);
		pnCentral.add(txCEP);
		pnCentral.add(txBairro);
    	pnCentral.add(txTelefone);
    	pnCentral.add(txCodigoDaCidade);
		pnCentral.add(txBuscar);
		pnCentral.add(txComplemento);
		// CONSTROI OS BOTÕES DA TELA 
		btSalvar = new JButton(" Salvar ");
		btSalvar.setBounds(10, 270, 100, 25);
		btExcluir = new JButton(" Excluir ");
		btExcluir.setBounds(115, 270, 100, 25);
		btAlterar = new JButton(" Alterar ");
		btAlterar.setBounds(220, 270, 100, 25);
		btLimpar = new JButton(" Limpar ");
		btLimpar.setBounds(325, 270, 100, 25);
		btListar = new JButton(" Listar ");
		btListar.setBounds(430, 270, 100, 25);
		btBuscar = new JButton(" Buscar ");
		btBuscar.setBounds(430, 307, 100, 25);
		// ADICIONA OS BOTÕES NA TELA 
		pnCentral.add(btSalvar);
		pnCentral.add(btAlterar);
		pnCentral.add(btLimpar);
		pnCentral.add(btListar);
		pnCentral.add(btBuscar);
		pnCentral.add(btExcluir);
								
		// ADICIONA OS PAINEIS NA FRAME
		getContentPane().add(pnNorte);
		getContentPane().add(pnSul);
		getContentPane().add(pnCentral);
		
		// COLOCA A JTABLE NA TELA
		modelo = new ClienteTableModel();
		modelo.addTableModelListener(this);
				
		tabela = new JTable();
		tabela.setModel(modelo);	
		tabela.setPreferredScrollableViewportSize(new Dimension(300, 300));
		tabela.setFillsViewportHeight(true);
				
		JScrollPane scrollPane = new JScrollPane(tabela);
		pnSul.add(scrollPane);
				// FIM DA JTABLE
				
		// EVENTOS DOS BOTÕES DA TELA
		btSalvar.addActionListener(this);
		btBuscar.addActionListener(this);
		btExcluir.addActionListener(this);
		btAlterar.addActionListener(this);
		btListar.addActionListener(this);
	    
	}
	
	public void insereClientes(){
		
		try {
			
		Cliente c = new Cliente();
		
		int codigo = Integer.parseInt(txCodigo.getText());
		int numero = Integer.parseInt(txNumero.getText());
		int codigoCidade = Integer.parseInt(txCodigoDaCidade.getText());
		
		c.setCodigo(codigo);
		c.setNome(txNome.getText());
		c.setCpf(txCpf.getText());
		c.setTelefone(txTelefone.getText());
		c.setEndereco(txEndereco.getText());
		c.setNumero(numero);
		c.setComplemento(txComplemento.getText());
		c.setBairro(txBairro.getText());
		c.setCodigoDaCidade(codigoCidade);
		c.setCep(txCEP.getText());
		c.setData_Nascimento(txDtNas.getText());
		c.setTelefone(txTelefone.getText());
		
		JOptionPane.showMessageDialog(null," Inserido com sucesso!!! ");
		}
		catch(Exception e){
			JOptionPane.showMessageDialog(null," Primeiro forneça os dados do cliente!!! ");
			
		}
	}
	
	public void buscaPorNome(){
		
		for (int i=0; i< listaClientes.size(); i++){
			if (listaClientes.get(i).getNome().equals(txBuscar.getText())){
			System.out.println(listaClientes.get(i));
			
		}
			else
				JOptionPane.showMessageDialog(null," Cliente não localizado!!! ");
	  }
	}
	
     public void removeCliente(){
		
		for (int i= 0; i<listaClientes.size(); i++){
			if (listaClientes.get(i).getNome().equals(txBuscar.getText())){
			listaClientes.remove(i);
			JOptionPane.showMessageDialog(null," Removido com sucesso!!! ");
		}
			else
				JOptionPane.showMessageDialog(null," Erro ao remover!!! ");
	  }
	}
	
	public void actionPerformed(ActionEvent a) {
		if (a.getSource()==btSalvar){
			insereClientes();			
		}		
		else if (a.getSource()== btAlterar){
			
		}		
		else if (a.getSource()== btBuscar){
			buscaPorNome();
		}
		else if (a.getSource()== btExcluir){
			removeCliente();
			
		}
		else if (a.getSource()== btLimpar){
			
		}
		else if (a.getSource()== btListar){
			modelo.addListaDeCliente(listaClientes);
		}
	}
	
	public static void main(String[] args) {
		Tela tela = new Tela();
		tela.setVisible(true);
		tela.setLocationRelativeTo(null);
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	@Override
	public void tableChanged(TableModelEvent arg0) {
		// TODO Auto-generated method stub
		
	}
}

Vc criou um ArrayList de clientes não adicionou nada nele…
Assim nunca vai entrar no for …

esse metodo aki, tah errado…

[code]
public void insereClientes(){

    try {  
          
    Cliente c = new Cliente();  
      
    int codigo = Integer.parseInt(txCodigo.getText());  
    int numero = Integer.parseInt(txNumero.getText());  
    int codigoCidade = Integer.parseInt(txCodigoDaCidade.getText());  
      
    c.setCodigo(codigo);  
    c.setNome(txNome.getText());  
    c.setCpf(txCpf.getText());  
    c.setTelefone(txTelefone.getText());  
    c.setEndereco(txEndereco.getText());  
    c.setNumero(numero);  
    c.setComplemento(txComplemento.getText());  
    c.setBairro(txBairro.getText());  
    c.setCodigoDaCidade(codigoCidade);  
    c.setCep(txCEP.getText());  
    c.setData_Nascimento(txDtNas.getText());  
    c.setTelefone(txTelefone.getText());  
      
    JOptionPane.showMessageDialog(null," Inserido com sucesso!!! ");  
    }  
    catch(Exception e){  
        JOptionPane.showMessageDialog(null," Primeiro forneça os dados do cliente!!! ");  
          
    }  
}  [/code]

eu tento inserir por ele… abraços

Se é para inserir os clientes na lista basta colocar listaClientes.add© como no código abaixo.

Ve se funciona agora.


public void insereClientes(){    
           
       try {    
               
       Cliente c = new Cliente();    
           
       int codigo = Integer.parseInt(txCodigo.getText());    
       int numero = Integer.parseInt(txNumero.getText());    
       int codigoCidade = Integer.parseInt(txCodigoDaCidade.getText());    
           
       c.setCodigo(codigo);    
       c.setNome(txNome.getText());    
       c.setCpf(txCpf.getText());    
       c.setTelefone(txTelefone.getText());    
       c.setEndereco(txEndereco.getText());    
       c.setNumero(numero);    
       c.setComplemento(txComplemento.getText());    
       c.setBairro(txBairro.getText());    
       c.setCodigoDaCidade(codigoCidade);    
       c.setCep(txCEP.getText());    
       c.setData_Nascimento(txDtNas.getText());    
       c.setTelefone(txTelefone.getText());    

       listaClientes.add(c);
           
       JOptionPane.showMessageDialog(null," Inserido com sucesso!!! ");    
       }    
       catch(Exception e){    
           JOptionPane.showMessageDialog(null," Primeiro forneça os dados do cliente!!! ");    
               
       }    
   }    

É isso que o Juliobrjp está falando.

O que estava ocorrendo:

Você estava preenchendo os atributos do Objeto, mas estava esquecendo de incluir o objeto no ArrayList.

viajei na maionese feio mesmo… hehe… vou conferir aki… abraços

como faço pra imprimir os dados na tela agora…

public void buscaPorNome(){  
          
        for (int i=0; i< listaClientes.size(); i++){  
            if (listaClientes.get(i).getNome().equals(txBuscar.getText())){  
            System.out.println(listaClientes.get(i));  
              
        }  
            else  
                JOptionPane.showMessageDialog(null," Cliente não localizado!!! ");  
      }  
    }  

tentei isso mas não deu certo… parece que imprime a posição da lista…

Assim imprime o nome do cliente.


public void buscaPorNome(){    
            
       for (int i = 0; i < listaClientes.size(); i++) {
			if (listaClientes.get(i).getNome().equals(txBuscar.getText())) {
				System.out.println(listaClientes.get(i).getNome());

			} else
				JOptionPane.showMessageDialog(null," Cliente não localizado!!! ");
	} 
}    

Julio, tu tem face cara?

To começando em java e to querendo trocar umas ideias pra dar uma avançada no meu desenvolvimento.

Se puder manda ai que te add.

Te passei uma mp.

cara faz assim:

//sua classe cliente

public class Cliente {  
      
    private int codigo;  
    private String nome;  
    private String cpf;  
    private String endereco;  
    private int numero;  
    private String complemento;  
    private String bairro;  
    private int codigoDaCidade;  
    private String cep;  
    private String data_Nascimento;  
    private String telefone;  
	
	public Cliente(int codigo, String nome, String cpf, String endereco, int numero, String complemento, String bairro, int codigoDaCidade, String cep, String data_Nascimento, String telefone){
		this.codigo = codigo;
		this.nome = nome;
		this.cpf = cpf;
		this.endereco = endereco;
		this.numero = numero;
		this.complemento = complemento;
		this.bairro = bairro;
		this.codigoDaCidade = codigoDaCidade;
		this.cep = cep;
		this.data_Nascimento = data_Nascimento;
		this.telefone = telefone;
	}
      
    public int getCodigo() {  
        return codigo;  
    }    
  
    public String getNome() {  
        return nome;  
    } 
  
    public String getCpf() {  
        return cpf;  
    } 
  
    public String getEndereco() {  
        return endereco;  
    } 
  
    public int getNumero() {  
        return numero;  
    } 
  
    public String getComplemento() {  
        return complemento;  
    }
  
    public String getBairro() {  
        return bairro;  
    } 
  
    public int getCodigoDaCidade() {  
        return codigoDaCidade;  
    }  
  
    public String getCep() {  
        return cep;  
    }  
  
    public String getTelefone() {  
        return telefone;  
    }
  
    public String getData_Nascimento() {  
        return data_Nascimento;  
    }  
}

Ai vc tem de fazer o seguinte para inserir um item no seu arraylist:

ArrayList<Cliente> TodosClientes = new ArrayList<>();
Cliente cliente1 = new Cliente(codigo, "nome","cpf","endereco", numero,"complemento", "bairro", codigoDaCidade, "cep", "data_Nascimento", "telefone");

TodosClientes.add(cliente1);

E para pecorrer esse ArrayList vc faz assim:

for(Cliente cli:TodosClientes){
      //por exemplo vc pede uma função
      cli.getCodigo(); //vai retornar o codigo de todos os clientes a medida que vc foi adicionando no arraylist;

}

Me fala se vc conseguiu…

pra inserir eu consegui sim, mas dá erro quando tento excluir…

para excluir faz assim:

TodosClientes.remove(posicaoClienteNoArrayList);

mudei meu código todo, fiz uma classe lista pra realizar operações só com a lista… olha só amigão vê se tah certo


public class Lista {
	
	private ArrayList<Cliente> listaClientes = new ArrayList<>();
	
	public Date formatarData(String data) throws ParseException{
		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		return new Date (formatter.parse(data).getTime());
	}
	
    public void insereClientes(Cliente clientes){
    	this.listaClientes.add(clientes);
    	System.out.println("Inserido com sucesso");
        
    }      
	
		
	    public void buscaPorNome(String nome){      
            
	           for (int i = 0; i < listaClientes.size(); i++) {
	                if (listaClientes.get(i).getNome().equals(nome)) {  
	                	  
	      
	                } else{  
	                    JOptionPane.showInputDialog(this," Cliente não localizado!!! ");
	                }
	        }   
	    }      
	
     public void removeCliente(Cliente clientes){
		
		for (int i= 0; i<listaClientes.size(); i++){
			if (listaClientes.get(i).getNome().equals(clientes.getCodigo())){
			listaClientes.remove(i);
			JOptionPane.showInputDialog(this," Removido com sucesso!!! ");
		}
			else{
				JOptionPane.showInputDialog(this," Erro ao remover!!! ");
			}
	  }
	}

}

só que não dá certo pra buscar nem remover, pra remover não sei como passar o objeto por parametro atraves do jtextfield… pode me ajudar… abraços