Ajuda com vector

9 respostas
fabiodurgante
private void PrencheJComboBoxCliente() {
      Vector vetorComboCliente = new Vector(); 
   
      ClienteDao clienteD = new ClienteDao();
    
 List<Cliente> lista = clienteD.listar(campo_pra_pesquisaNome.getText());//aqui pega o campo por parametro pra pesquiza
          jComboBox.removeAllItems();   
     for(Cliente cliente:lista) { 
                  
      JComboBoxCliente ComboBoxCliente = new JComboBoxCliente(cliente.getid_Cliente(), cliente.getNome_Cliente() );   
      
    
            vetorComboCliente.add(ComboBoxCliente); 
    
        modelocCliente = new DefaultComboBoxModel (vetorComboCliente);   
           jComboBox.setModel(modelocCliente);
     }

e para usar ele 
     Object obj3 = jComboBox.getSelectedItem();     
  
        int valor =0;   
     valor = Integer.parseInt(String.valueOf(((JComboBoxCliente) obj3).getid_cliente())) ;

tenho um jcombobox carregado pelo banco com nome do cliente quando eu clico no nome do cliente pego o codigo do cliente que foi carregado para o vector funciona bem porem quando vou criar o .jar
aparece oseguinte

C:\teste\src\apresentacao\ConsultarCliente.java:879: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
bem aqui vetorComboCliente.add(ComboBoxCliente);

alguem saberia o porque disso ???

9 Respostas

Vini_Fernandes

Cara, tente sempre “tipar” quando trabalhar com Collection Framework, dessa forma faça o seguinte: Vector vetorComboCliente = new Vector();
pois dessa voce nao se preocupara com cast quando recuperar um elemento desse Vector!

Abracao

F

Procure usar um ArrayList ao invés do VECTOR.

Soube que o VECTOR está para morrer!!! Se já não morreu!!! rs

http://www.guj.com.br/posts/list/74068.java#389435

Abç

Marco A.

Vini_Fernandes

Caras, o problema é que todos os metodos de Vector sao synchronized, assim, teremos perda de performance por causa da concorrencia, porem eu nao sei quantificar essa perda e se souberem escrevam…srs! Creio que um ArrayList vai sazer o seu servico!!

Abracao

fabiodurgante

seguinte meu fazendo isso que voce me disse nao da mais erro porem pega o id errado do cliente

chamo ele assim
Object obj3 = jComboBox.getSelectedItem();

int valor =0;   
 valor = Integer.parseInt(String.valueOf(((JComboBoxCliente) obj3).getid_cliente())) ;

System.out.print(valor);

e o que eu fiz foi

private void PrencheJComboBoxCliente() {
    //  Vector vetorComboCliente = new Vector();   
 Vector<JComboBoxCliente> vetorComboCliente = new Vector<JComboBoxCliente>(); 
  
      ClienteDao clienteD = new ClienteDao();
    
 List<Cliente> lista = clienteD.listar(campo_pra_pesquisaNome.getText());//aqui pega o campo por parametro pra pesquiza
          jComboBox.removeAllItems();   
     for(Cliente cliente:lista) { 
                  
      JComboBoxCliente ComboBoxCliente = new JComboBoxCliente(cliente.getid_Cliente(), cliente.getNome_Cliente() );   
      
    
            vetorComboCliente.add(ComboBoxCliente); 
    
        modelocCliente = new DefaultComboBoxModel (vetorComboCliente);   
           jComboBox.setModel(modelocCliente);
     }
     

     
}

assim some o erro porem pega sempre o id_cliente 4

fabiodurgante

eu posso coocar um jcombobox dentro de um array list pode da um exemplo ai ???

Vini_Fernandes

Entao cara, para voce inserir um JComboBox em um List basta voce fazer:

List<JComboBox> array = new ArrayList<JComboBox> ();
array.add(meuJComboBox);

Outra coisa, para voce ver se sua lista contem os elementos que deveria voce pode fazer algo assim:

List<Cliente> lista = clienteD.listar(campo_pra_pesquisaNome.getText());
for(Cliente cliente : lista)//esse for vai imprimir os ids dos clientes da lista
   System.out.println("id do cliente: "+cliente.getid_Cliente());

abracao

lina
fabiodurgante:
private void PrencheJComboBoxCliente() {
      Vector vetorComboCliente = new Vector(); 
   
      ClienteDao clienteD = new ClienteDao();
    
 List<Cliente> lista = clienteD.listar(campo_pra_pesquisaNome.getText());//aqui pega o campo por parametro pra pesquiza
          jComboBox.removeAllItems();   
     for(Cliente cliente:lista) { 
                  
      JComboBoxCliente ComboBoxCliente = new JComboBoxCliente(cliente.getid_Cliente(), cliente.getNome_Cliente() );   
      
    
            vetorComboCliente.add(ComboBoxCliente); 
    
        modelocCliente = new DefaultComboBoxModel (vetorComboCliente);   
           jComboBox.setModel(modelocCliente);
     }

e para usar ele 
     Object obj3 = jComboBox.getSelectedItem();     
  
        int valor =0;   
     valor = Integer.parseInt(String.valueOf(((JComboBoxCliente) obj3).getid_cliente())) ;

tenho um jcombobox carregado pelo banco com nome do cliente quando eu clico no nome do cliente pego o codigo do cliente que foi carregado para o vector funciona bem porem quando vou criar o .jar
aparece oseguinte

C:\teste\src\apresentacao\ConsultarCliente.java:879: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
bem aqui vetorComboCliente.add(ComboBoxCliente);

alguem saberia o porque disso ??????

Oi,

Só detalhando o que amigo falou...

Esse warning que foi executado pelo compilador se dá ao uso de Generics. Toda a codificação que não faz uso de Generics apresenta isto.

Sendo assim, você precisa especificar (em modo de compilação) qual o tipo de objetos que vai ter na sua collection. Quando especificado (em sua coleção), só vai ser permitido adicionar objetos da classe especificada.

Acredito que isso é bom para a segurança da codificação, além de evitar o uso do cast em possiveis situações.

O que você devera fazer é passar a utilizar está ideia de Generics em seu código, conforme nosso colega falou acima.

fabiodurgante

bah meu tranquilo so que eu tenho mais o seguinte uma classe

package percistencia;

public  class JComboBoxCliente {   
    private String nome_cliente;   
    private int id_cliente;
    
    
    public JComboBoxCliente(int id_cliente, String nome_cliente) {   
        this.id_cliente = id_cliente;   
        this.nome_cliente = nome_cliente;   
    }   
  

     public String toString() {   
        return nome_cliente;   
    }   
  
     public int getid_cliente() {   
         return id_cliente;   
     }   
  
}

que salva o nome e o id e agora nao ta dando certo nao

fabiodurgante

achei furo da coisa o DefaultComboBoxModel nao constroi com list ou array list somente com vector ou vetor de objetos se tivesse um list teria que fazer o seguinte

  • faça um for de acordo com o List.size()

  • crie um vetor com esse tamanho…

  • para cada obj da lista (rs.next()), adicione o valor dessa posição no vetor
    
    ex:
    
    obj = (Object)Lista.get(i);
    
    vetor[i] = obj.get.nome)cliente;
    
  • depois é só colocar o vetor no construtor da JComboBox.

  • JComboBox combo = new JComboBox(vetor);

ai é muito mais complicado o negocio é fazer um vector mesmo diretasso e ja eras valeu ai a todos pela ajuda e muito obrigado

Criado 9 de fevereiro de 2009
Ultima resposta 10 de fev. de 2009
Respostas 9
Participantes 4