Galera, minha dúvida é a seguinte:
Preenchi meu comboBox com objetos assim como mostra o post abaixo:
Porém não estou conseguindo fazer com que ele exiba apenas o nome, ocultando a referência de objeto:
Meu codigo:
public void carregaComboModelos() throws ClassNotFoundException {
VeiculoControl v = new VeiculoControl();
ArrayList<ModeloVeiculo> modelos = new ArrayList<ModeloVeiculo>(v.pegaModelos());
for (ModeloVeiculo m : modelos) {
comboModelo.addItem(m); /*detalhe - comboModelo é o nome de meu obj swing
}
}
Observem que populei todo o combo, mas quero que ele mostre apenas a descrição dos modelos.
No post que me referi acima, o “paulojoinha” diz que é preciso usar um toString() para que isso aconteça, mas como faço?
Porém agora surgiu outro problema ao extrair a informação “id” deste meu objeto:
ModeloVeiculo m = (ModeloVeiculo)comboModelo.getSelectedItem();
int idModelo=m.getId(); //Onde id é um atributo do tipo inteiro, mais precisamente esta armazenando um valor de chave
erro:
[color=darkred]Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to br.trab.estacionamento.bean.ModeloVeiculo[/color]
Esta é minha classe ModeloVeiculo
public class ModeloVeiculo {
private int id;
private String modelo;
public ModeloVeiculo(){
}
public ModeloVeiculo(int id, String modelo) {
this.id = id;
this.modelo = modelo;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String toString(){
return this.modelo;
}
}
acontece que quando vc usa o metodo getSelectedItem() ele esta trazendo uma string e nao o objeto ModeloVeiculo, assim ele da erro prq nao consegue dar o cast entende???
acredito que a sua implementacao do modelo do JList esteja errada, poste o codigo da classe toda pra mim ver.
Bom dia a todos…
Pessoal, sei que ja setei o topico como resolvido, porém surgiu uma outra dúvida com relação ao assunto acima.
É possível fazer o mesmo em um jTextField? Algo do tipo jTextField1.set???(m);
Tentei aqui de várias forma e não consegui.