Olá Pessoal,
antes de qualquer coisa, FELIZ 2009 para todos…
estou com um problema com um Jcombobox, segue imagem para explicar melhor.
o codigo que popula o combobox e ajusta o KeyEvent é este:
public TesteJCombobox() {
initComponents();
entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("PUCX").createEntityManager();
jComboBox1.setRenderer(new ClientesCellRenderer());
//jComboBox1.setEditor(new ClientesEditorCombobox());
jComboBox1.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
//jComboBox1.getSelectedItem().toString().length() > 1 &&
if (jComboBox1.getSelectedIndex() < 0) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
query = entityManager.createQuery("SELECT c FROM Clientes c");
list = query.getResultList();
jComboBox1.setModel(new DefaultComboBoxModel(list.toArray()));
jComboBox1.setPopupVisible(true);
}
}
}
});
}
utilizei um renderer para pegar o getNome() do objeto na lista, mais no editor não estou conseguindo fazer com que ele não mostre o toString(), na verdade até consegui implementando um ComboxEditor, sobreescrevi o método setItem() e tal… baseado na implementação do BasicComboBoxEditor mas o que ocorreu e que ele quando seleciono um objeto na lista ele não o seta o mesmo, até adicionei um button pra mostrar o get do objeto.
Clientes cli = (Clientes) jComboBox1.getSelectedItem();
JOptionPane.showMessageDialog(null, cli.getIdcliente());
Qual o Editor padrão que o JCombobox implementa? é o BasicComboBoxEditor?
Estou utilizando o DefaultModel, pode haver relação com o problema?
abraço a todos.