JComboBox - onde guardar a chave? (RESOLVIDO)

1 resposta
mauber

Olá pessoal,

Estou construindo uma aplicação Desktop (client-server) e estou sentindo a seguinte dificuldade, todas as vezes que escolho um item no combobox preenchido, por exemplo de clientes, eu tenho que pegar a descrição, ir novamente até a tabela de cliente para pegar a chave dele para que se possa gravar em outra tabela.
A dúvida é, quando estou montando o combobox, adicionando item-a-item, não existem um lugar onde eu possa “esconder/adicionar” também a chave (PK) da tabela de clientes para não ter que ir toda vez no banco novamente?

Muito Obrigado!

1 Resposta

mauber

Achei um exemplo:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TesteComboBox extends JPanel {
    JComboBox combo;

    public TesteComboBox() {

        Usuario[] arrayFamilia = new Usuario[4];

        arrayFamilia[0] = new Usuario(12,"Allan ");
        arrayFamilia[1] = new Usuario(32,"Amanda");
        arrayFamilia[2] = new Usuario(15,"Fernanda");
        arrayFamilia[3] = new Usuario(53,"Elisabete");

        combo = new JComboBox(arrayFamilia);

        combo.setSelectedIndex(0);
        combo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Usuario user = (Usuario)combo.getSelectedItem();
                JOptionPane.showMessageDialog(null,"Nome Usuário" +
user.nmUsuario + "\n Id Usuario:" + user.idUser);
            }
        });

        setLayout(new BorderLayout());
        add(combo, BorderLayout.NORTH);
        setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
    }

    public static void main(String s[]) {
        JFrame frame = new JFrame("Teste de Combo");

        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });

        frame.setContentPane(new TesteComboBox());
        frame.pack();
        frame.setVisible(true);
    }
}

class Usuario {

   int idUser;
   String nmUsuario;

   public Usuario(int idUser, String nmUsuario){
        this.idUser = idUser;
        this.nmUsuario = nmUsuario;
   }

   public  String toString(){
        return this.nmUsuario;

   }

}
Criado 16 de setembro de 2006
Ultima resposta 16 de set. de 2006
Respostas 1
Participantes 1