bom dia, estou tentando utilizar o setSelectedItem do jcombobox para setar um objeto e não estou conseguindo.
Utilizei o equals sobrescrito na classe e não consegui ainda,
tenho a seguinte classe:
package classes;
import java.io.Serializable;
public class Depositos implements Serializable {
private static long serialVersionUID = 1L;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public static void setSerialVersionUID(long aSerialVersionUID) {
serialVersionUID = aSerialVersionUID;
}
private String codDeposito;
private String desDeposito;
public String getCodDeposito() {
return codDeposito;
}
public void setCodDeposito(String codDeposito) {
this.codDeposito = codDeposito;
}
public String getDesDeposito() {
return desDeposito;
}
public void setDesDeposito(String desDeposito) {
this.desDeposito = desDeposito;
}
@Override
public String toString() {
return this.getDesDeposito();
}
@Override
public boolean equals(Object o) {
if (o instanceof Depositos) {
equals((Depositos) o);
}
if (o instanceof String) {
equals((String) o);
}
return false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + (this.codDeposito != null ? this.codDeposito.hashCode() : 0);
hash = 59 * hash + (this.desDeposito != null ? this.desDeposito.hashCode() : 0);
return hash;
}
public boolean equals(Depositos dep) {
return dep.codDeposito.equals(this.codDeposito);
}
}
Essa classe gera os objetos.
Ai coloco os objetos do banco no combo assim:
java.util.List<Depositos> dep = dao.getParametrosDepositos();
for (Depositos deposito : dep) {
jCbDepositos.addItem(deposito);
}
Ai o usuario salva o código do depósito num arquivo .ini, é uma tela de configuração.
Ai quando abro a tela novamente para visualização ou edição, preciso pegar o codigo do deposito, achar o
objeto correspondente e setá-lo no combo:
String codDeposito = ini.getProperty("deposito");
//acha o código no combobox q equivale ao código do .ini
java.util.List<Depositos> depositos = dao.getParametrosDepositos();
for (Depositos deposito : depositos) {
// JOptionPane.showMessageDialog(this, deposito.getCodDeposito() + " --- " + codDeposito);
if (deposito.getCodDeposito().equals(codDeposito)) {
// JOptionPane.showMessageDialog(this, "achou");
jCbDepositos.setSelectedItem(deposito);
}
}
Mas ele não seta o objeto, quando vou selecionar um item para salvar seu código o combo não deixa escolher um item, por isso
não consigo salvar o codigo para depois tentar setar.
Se eu comentar isso:
@Override
public boolean equals(Object o) {
if (o instanceof Depositos) {
equals((Depositos) o);
}
if (o instanceof String) {
equals((String) o);
}
return false;
}
Ele deixa eu escolher um item e salva o codigo no arquivo, mas ao abrir a tela ele não consegue setar o objeto
Alguma dica?
Valeu