ArrayList

Olá…
gostaria de saber como pego os dados do banco e jogo em uma ArrayList??
eu queria pegar o nome e o codigo …
se alguem puder ajudar vlw…
abraço… :smiley:

Olá!

Crie um classe que tenha como atributos o nome e o código. Crie para esta classe um construtor que já receba estes dois parâmetros.

faça algo do tipo:

ArrayList objetos = new ArrayList();
while(seuResultSet.next()){
   String nome = ... //pegue o campo nome
   String codigo =... //pegue o campo codigo
   objetos.add(new suaClasse(codigo, nome));
}

Abraço!

oh eu fiz isso cassio…
criei a classe lista com os atributos … e o seguinte codigo…

[code]
public ArrayList getDados5(String s){

    ArrayList objeto = new ArrayList();
    
    String codigo, nome;
    if(conn){
        if(connection != null){
            try{
                ps = connection.prepareStatement("select nome,codigo from Funcionario where codigo = ? order by nome;");
                ps.setString(1,s);
                rs = ps.executeQuery(); 
                
                while(rs.next()){
                 
                    nome = rs.getString("nome");
                    codigo = rs.getString("codigo");
                    objeto.add(new Lista(codigo, nome)); 
                }
            }catch(SQLException e){
                System.out.println(e.getMessage());
                System.out.println("Não ta fazendo.");
            }
        }            
    }           
    return objeto;
}[/code]

ta certo???
se sim …
gostaria de saber como pegar o resultado em um JComboBox…
vlw

Olá

Aparentemente está certo, não posso afirmar pois não vi sua classe Lista.
Vc não testou? Teste e imprima no console quantos elementos tem seu ArrayList quando sair do while…

System.out.println(seuArrayList.size());

Para alimentar um combox a partir deste ArrayList

JComboBox combo = new JComboBox(seuArrayList.toArray());

Abraço!

Hum não to conseguindo fazer o teste …

eu mudei umas coisas …
vo posta o codigo da classe Lista

[code]
public class Lista {
String Nome;
String Codigo;

public Lista() {
    }

public Lista(String nome, String codigo){
    this.Nome = nome;
    this.Codigo = codigo;
}
public String getNome(){
    return Nome;
}
public void setNome(String Nome){
    this.Nome = Nome;
}
public String getCodigo(){
    return Codigo;
}
public void setCodigo(String Codigo){
    this.Codigo = Codigo;
    
}

}[/code]

e esse código ta na classe banco …

[code]
public ArrayList getDados5(Lista l){//verifica o codigo

    ArrayList objeto = new ArrayList();
    
    String codigo, nome;
    
    if(conn){
        if(connection != null){
            try{
                ps = connection.prepareStatement("select nome,codigo from Funcionario where codigo = ? order by nome;");
                ps.setString(1,l.getCodigo());
                rs = ps.executeQuery(); 
                
                while(rs.next()){
                   // aux += (rs.getInt("Codigo") + " - " + rs.getString("Nome") + " - " + rs.getString("Telefone") + "\n");
                    nome = rs.getString("nome");
                    codigo = rs.getString("codigo");
                    objeto.add(new Lista(codigo, nome)); 
                }
                System.out.println(objeto.size()); 
                
            }catch(SQLException e){
                System.out.println(e.getMessage());
                System.out.println("Não ta fazendo.");
            }
        }            
    }           
    return objeto;
}[/code]

e eu queria chamar ele de uma outra classe …

abraço …

Mas o que está acontecendo, está caindo na exceção?!

E porque seu método recebe um objeto da classe Lista?

vixii eu to perdido …rs
axeei q fosse assim …
qqr coisa dexa …
vlw abraço

Não poxa, chegamos tão longe pra vc largar mão?
Explica ai, dá algum erro? O que tá rolando?!

ae vlw veio …
eh assim eu tenho a classe Lista a Classe Banco e eu tenho uma outra classe que uma tela … que tem o JComboBox…
e eu teria q chamar da classe tela nao eh ??
pra compilar …
eu to meio perdido … vc flw do objeto ali … como ficaria ?

Alguem poderia me ajudar ???

Esse seu método que retorna um ArrayList está dentro da classe Banco?

Sua classe que tem a tela é a que tem o main?

Se for este o caso, vc pode declarar um objeto do tipo Banco na classe que tem a tela e chamar o método que da classe Banco que retorna o ArrayList a partir deste objeto, passando o retorno como

seuComboBox = new JComboBox(seuArrayList.toArray());

E assim inicializando o seu combo :slight_smile:

puts cassio, nao to conseguindo

public void combo(){

    fornec1.removeAllItems();
 	
          Banco banco = new Banco();
        
         banco.getDados5();
         fornec1 = new JComboBox(objeto.toArray());

eh mais o menos assim ???
vlw …

Péra ai… se o seu combo já existe antes de vc alimentar, então vc tem que alterar o model dele… Quem define quais itens serão exibidos no combo na verdade é o model associado a ele.
Agora, se vc simplesmente cria a janela com os itens ja incluidos no combo box, o usuáfrio seleciona o que quer e depois sai da janela, sem que os itens sofram alterações, vc pode instanciar um novo combo box recebendo o array sem problemas. Se o seu combo box for mudando, fica mais complicado adicionar os itens dessa forma, sem ter que alterar diretamente o model. Acho melhor vc limpar tudo e depois usar um laço que percorra o ArrayList e vá adicionando os itens um a um no combo… sacou?

Se o combo for criado na inicialização da janela e depois não sofrer alterações

Banco banco = new Banco();
//... mais do seu código ...
fornec1 = new JComboBox(banco.getDados5().toArray());
//... mais do seu código ...

Se o seu combobox, em algum momento, seja totalmente alterado, recebendo novos itens (um exemplo)

ArrayList dados = banco.getDados5();
fornec1.removeAllItems();
//adicionando todos os itens do ArrayList ao seu JComboBox
for(int i = 0; i < dados.size(); i++)
   fornec1.addItem(dados.get(i));

Qualquer coisa posta ai,

Abraço!

amigo ta dando um erro no getDados5();

ArrayList dados = banco.getDados5();
fornec1.removeAllItems();
//adicionando todos os itens do ArrayList ao seu JComboBox
for(int i = 0; i < dados.size(); i++)
fornec1.addItem(dados.get(i));

colokei dessa forma …
abraço …vlw :smiley:

Fica dificil saber o problema se vc não colar o erro ai… :slight_smile:

ah sim rs … foi mal …

getDados5(java.lang.String) cannot be applied to()

sabe o q eh??

Alguem pode me ajudar com esse erro??

obrigado…

getDados5(java.lang.String) cannot be applied to()

Vc deve estar chamando o método getDados5 sem nenhum parâmetro, sendo que ele só é aplicável com String como parâmetro.

Acho que é isso! :idea:

vc saberia me dizer q parametro devo passar … não to conseguindo …