Add itens em lista

6 respostas
E

como faço pra add nome e idade numa mesma lista e depois clicando num botao pesquisar mostro a lista com o nome e idade solicitado.
dessa maneira q to fazendo nao ta dando a lista so mostra nome ou idade.

//Metodo cadastro
public void cadastrar(){

Lista.add(txt_nome.getText());//iclui no array e captura o texto                    	
                	Lista.add(txt_idade.getText()); 
                	
                	JOptionPane.showMessageDialog(this, "Nome Cadastrado:  " +txt_nome.getText()+ "Idade:  "+txt_idade.getText());// Apresenta o nome cadastrado
                	
                	txt_nome.setText(null);//limpa o espaço anterior
                	txt_nome.requestFocus();//Retorna ao foco                    	
                	txt_idade.setText(null);                    	
                }
                
                
                public void pesquisar(){
                	String p= JOptionPane.showInputDialog(this,"Digite o nome a pesquisar");
                	Iterator i= Lista.iterator();
                	while(i.hasNext()){
                		String aux= (String) i.next();
                		if(aux.equals(p)){
                			JOptionPane.showMessageDialog(this,"Nome cadastrado: " +aux + "Idade: "  +aux);
                			//txt_nome.setText(aux);                  			
                			                    			
                			p=null;                    			
                          	break;
                      		} 
                		
                	}
                 if(p!=null)
                		JOptionPane.showMessageDialog(this, "Nome nao encontrado");
                 	
                }

6 Respostas

Wolf_X

mano, vc tem q salvar um objeto contendo o nome e a idade, entendeu???
crie uma classe com os atributos idade e nome, e entao adicione-os na lista.

fujioka

Olá, nesse seu caso não seria melhor criar uma lista de objetos não??

public class Pessoa{

private String nome;
private int idade; // Aqui seria mais interessante pegar da data de nascimento ao invés da idade.

public void setIdadeI(int idade){

this.idade = idade;

}
public void setNome(String nome){

this.nome = nome;

}

}

/Metodo cadastro
public void cadastrar(Pessoa p){

Lista.add§;//iclui no array e captura o texto

JOptionPane.showMessageDialog(this, "Nome Cadastrado: " +p.getNome()+ "Idade: "+p.getIdade());// Apresenta o nome cadastrado
}

public void pesquisar(Pessoa p){

List lixo = new ArrayList();// Um EXEMPLO DE POG

String nome= JOptionPane.showInputDialog(this,Digite o nome a pesquisar);

Iterator i= Lista.iterator();

while(i.hasNext()){

if(p.equalsIgnoreCase(nome)){

JOptionPane.showMessageDialog(this,"Nome cadastrado: " +p.getNome() + "Idade: " +p.getIdade);

lixo.add§;

}
}

if(lixo.size()==null)

JOptionPane.showMessageDialog(this, Nome nao encontrado);

}

/// Fiz isso ai bem rápido… Nâo ta legal, mais é so pra dar uma ideia mesmo =)

E

o problema é q nao consigo q estou trabalhando com botoes. olha o codigo todo:

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.<em>;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.ArrayList;

import java.util.Iterator;

import javax.swing.</em>;

import java.util.<em>;

import javax.swing.border.</em>;

import java.awt.*;
public class Exercicio extends JFrame implements ActionListener{

private JTextField txt_nome, txt_idade;

private JButton B1, B2, B3, B4, B5, B6, B7;

private JLabel L1, L2;

public ArrayList Lista, p;
// Criaçao do conteiner	

public Exercicio() {

super(Cadastro de pessoas);

Container c= this.getContentPane();//getContentPane().setLayout(null);

c.setLayout(null); // 2 sem isso

Lista = new ArrayList();
// Criaçao das caixas de texto do conteiner

L1= new JLabel(Nome);

L1.setBounds(10,5,40,20);

//getContentPane().add(L1);

c.add(L1);

txt_nome= new JTextField();

txt_nome.setBounds(62,5, 80, 20);

//getContentPane().add(txt_nome);

c.add(txt_nome);
L2= new JLabel("Idade");
            	L2.setBounds(220,5,50,20);
            	c.add(L2);

            	txt_idade=new JTextField("");
            	txt_idade.setBounds(255,5,30,20);
            	c.add(txt_idade);


            	B1= new JButton ("Cadastrar");
            	B1.setBounds(10,40,110,20);
            	B1.addActionListener(this);
            	//getContentPane().add(B1);
            	c.add(B1);                	
            	                	
            	B2= new JButton ("Pesquisar");
            	B2.setBounds(130,40,110,20);
            	B2.addActionListener(this);
            	c.add(B2);
            	
            	B3= new JButton ("Primeiro");
            	B3.setBounds(10,70,110,20);
            	B3.addActionListener(this);
            	c.add(B3);
            	
            	B4= new JButton ("Proximo");
            	B4.setBounds(130,70,110,20);
            	B4.addActionListener(this);
            	c.add(B4);
            	
            	B5= new JButton ("Anterior");
            	B5.setBounds(250,70,110,20);
            	B5.addActionListener(this);
            	c.add(B5);
            	
            	B6= new JButton ("Ultimo");
            	B6.setBounds(370,70,110,20);
            	B6.addActionListener(this);
            	c.add(B6);             	
            	               	
            	                	
            	setSize(600,400);
            	setVisible(true);
				setDefaultCloseOperation(3);					
    } //Fim da classe
            
            // Trata as açoes
                public void actionPerformed(ActionEvent ev){
                	if(ev.getSource()==B1){// Verifica se é o botao
                		//Lista = new ArrayList();
                		cadastrar();} // se for chama a funcao cadastrar
                	else if(ev.getSource()==B2)
                	    pesquisar();
       }
            
            //Metodo cadastro
                public void cadastrar(){
                                   	
                	Lista.add(txt_nome.getText());//iclui no array e captura o texto                    	
                	//Lista.add(txt_idade.getText()); 
                	
                	JOptionPane.showMessageDialog(this, "Nome Cadastrado:  " +txt_nome.getText()+ "Idade:  "+txt_idade.getText());// Apresenta o nome cadastrado
                	
                	txt_nome.setText(null);//limpa o espaço anterior
                	txt_nome.requestFocus();//Retorna ao foco                    	
                	//txt_idade.setText(null);                    	
                }
                
                
                public void pesquisar(){
                	String p= JOptionPane.showInputDialog(this,"Digite o nome a pesquisar");
                	Iterator i= Lista.iterator();
                	while(i.hasNext()){
                		String aux= (String) i.next();
                		if(aux.equals(p)){
                			JOptionPane.showMessageDialog(this,"Nome cadastrado: " +aux + "Idade: "  +aux);
                			//txt_nome.setText(aux);                  			
                			                    			
                			p=null;                    			
                          	break;
                      		} 
                		
                	}
                 if(p!=null)
                		JOptionPane.showMessageDialog(this, "Nome nao encontrado");
                 	
                }  	

 public static void main(String args[]){
	new Exercicio();
	Exercicio app = new Exercicio();

      app.addWindowListener(

         new WindowAdapter(){

            public void windowClosing(WindowEvent e){

               System.exit(0);

            }

         }

      );


 }//Fim da main

}//Fim do construtor

E

mas ninguem tem uma resposta pra dar uma luz.

Wolf_X

mano,olha soh , nao tive tempo de ficar vendo seu codigo todo nao , soh fiz oq se pediu mas aviso logo, a sua variavel Lista tava toda errada :smiley:
tipo assim , vc tava inserindo strings e ints nela, soh q JAVA eh OO entao o ideal eh criar um objeto com esses atriburtos e entao inseri-los no ArrayList, aproposito , o atributo deveria ser private a meu ver e em vez de Lista use lista pois em java temos como padrao q variaveis começam sempre com letras minusculas. nao entendo mto , comecei a aprender sobre isso agora, portant se eu falei alguma bobagem , por favor me corrijam. :smiley:

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.*;
import java.util.*;
import javax.swing.border.*;
import java.awt.*;


public class Exercicio extends JFrame implements ActionListener{
private JTextField txt_nome, txt_idade;
private JButton B1, B2, B3, B4, B5, B6, B7;
private JLabel L1, L2;
public ArrayList<Usuario> Lista;

// Criaçao do conteiner
public Exercicio() {
super("Cadastro de pessoas");
Container c= this.getContentPane();//getContentPane().setLayout(null);
c.setLayout(null); // 2 sem isso
Lista = new ArrayList<Usuario>();

// Criaçao das caixas de texto do conteiner
L1= new JLabel("Nome");
L1.setBounds(10,5,40,20);
//getContentPane().add(L1);
c.add(L1);
txt_nome= new JTextField();
txt_nome.setBounds(62,5, 80, 20);
//getContentPane().add(txt_nome);
c.add(txt_nome);

L2= new JLabel("Idade");
L2.setBounds(220,5,50,20);
c.add(L2);

txt_idade=new JTextField("");
txt_idade.setBounds(255,5,30,20);
c.add(txt_idade);


B1= new JButton ("Cadastrar");
B1.setBounds(10,40,110,20);
B1.addActionListener(this);
//getContentPane().add(B1);
c.add(B1);

B2= new JButton ("Pesquisar");
B2.setBounds(130,40,110,20);
B2.addActionListener(this);
c.add(B2);

B3= new JButton ("Primeiro");
B3.setBounds(10,70,110,20);
B3.addActionListener(this);
c.add(B3);

B4= new JButton ("Proximo");
B4.setBounds(130,70,110,20);
B4.addActionListener(this);
c.add(B4);

B5= new JButton ("Anterior");
B5.setBounds(250,70,110,20);
B5.addActionListener(this);
c.add(B5);

B6= new JButton ("Ultimo");
B6.setBounds(370,70,110,20);
B6.addActionListener(this);
c.add(B6);


setSize(600,400);
setVisible(true);
setDefaultCloseOperation(3);
} //Fim da classe

// Trata as açoes
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==B1){// Verifica se é o botao
//Lista = new ArrayList();
cadastrar();} // se for chama a funcao cadastrar
else if(ev.getSource()==B2)
pesquisar();
}

//Metodo cadastro
public void cadastrar(){

Lista.add(new Usuario(txt_nome.getText(),Integer.parseInt(txt_idade.getText())));//iclui no array e captura o texto

JOptionPane.showMessageDialog(this, "Nome Cadastrado: " +txt_nome.getText()+ "Idade: "+txt_idade.getText());// Apresenta o nome cadastrado

txt_nome.setText(null);//limpa o espaço anterior
txt_nome.requestFocus();//Retorna ao foco
txt_idade.setText(null);
}


public void pesquisar(){
String p= JOptionPane.showInputDialog(this,"Digite o nome a pesquisar");
for (int i =0;i<Lista.size();i++){
if(Lista.get(i).getNome().equals(p)){
JOptionPane.showMessageDialog(this,"Nome cadastrado: " +Lista.get(i).getNome() + "Idade: " +Lista.get(i).getIdade());
p=null;
break;
}
}
if(p!=null)
JOptionPane.showMessageDialog(this, "Nome nao encontrado");

}

protected class Usuario{
    private int idade;
    private String nome;

        Usuario(String nome,int idade){
            this.nome = nome;
            this.idade = idade;
        }
    
        public int getIdade() {
            return idade;
        }

        public void setIdade(int idade) {
            this.idade = idade;
        }

        public String getNome() {
            return nome;
        }

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

public static void main(String args[]){
Exercicio app = new Exercicio();

app.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);


}//Fim da main
}//Fim do construtor

a proposito , use a tag code sempre q postar codigos :smiley:

E

valeu mesmo pelo codigo.

Criado 2 de setembro de 2007
Ultima resposta 2 de set. de 2007
Respostas 6
Participantes 3