Olá, galera!
Estou com uma pergunta em aberta.
Eu estou usando em um programa hibernate eclipse no Netbeans e preciso pegar de um JCombobox, que recebe uma list, um valor do tipo string. Como possa fazer isso?
Minha questão não é carregar o combobox, mas pegar a String fazendo um cast se um bean para uma String.
Eclipse é um IDE e NetBeans é outro IDE. Você não utiliza um dentro do outro. Seja mais claro.
Um bean não estende a classe String, portanto você não pode fazer cast.
Crie um ComboBoxModel para renderizar sua lista de objetos.
Eclipse é uma biblioteca, que vem inclusa no Netbeans.
Obrigado pela dica sobre ComboBoxModel, vou pesquisar sobre o assunto.
Não está confundindo com EclipseLink?
EclipseLink é uma implementação do JPA, assim como o Hibernate.
Sim. Obrigado.
Me desculpa. Você tem um modelo?
Suponha que você tem a seguinte coleção de objetos:
private List<TipoDado> objetos;
Aí, na sua tela, você cria uma inner class para renderizá-los:
private class MeuComboBoxModel extends DefaultComboBoxModel<String> {
// O JComboBox vai chamar este método para saber quantos itens ele deve apresentar
@Override
public int getSize() {
return objetos == null ? 0 : objetos.size();
}
// O JComboBox vai chamar este método para saber o que deve apresentar na posição informada pelo parâmetro index
@Override
public String getElementAt(int index) {
TipoDado objeto = objetos.get(index);
return objeto.getPropriedadeQueQueroApresentar();
}
}
E então é só inicializar o seu JComboBox
dessa forma:
ComboBoxModel<String> comboBoxModel = new MeuComboBoxModel();
JComboBox<String> comboBox = new JComboBox<String>(comboBoxModel);
Agora se você adicionar ou remover elementos da sua lista identificada pela variável objetos
, isso vai refletir na renderização do seu JComboBox
.