puxa, mais fácil do que pensei... bom, se vc colocar como vo no combo, aparece o nome da classe @ um monte de número né?
então, basta vc sobrescrever o método toString() do seu vo para ele retornar o nome. para pegar o que estiver no combo, basta usar o getSelectedItem() do JComboBox memso.
segue o meu teste aqui:
TesteCombo.java
package teste.eduardo;
import java.util.Vector;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class TesteCombo extends JFrame {
private static final long serialVersionUID = 1L;
JComboBox combo;
static Vector vos;
static {
vos = new Vector();
vos.add(new TesteComboVO(1, "Zé 1"));
vos.add(new TesteComboVO(2, "Zé 2"));
}
public TesteCombo() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
combo = new JComboBox(TesteCombo.vos);
combo.addActionListener(new TesteComboAction());
getContentPane().add(combo);
pack();
}
public static void main(String[] args) {
TesteCombo teste = new TesteCombo();
teste.setVisible(true);
}
}
TesteComboVO.java
package teste.eduardo;
public class TesteComboVO {
int id;
String nome;
public TesteComboVO(int id, String nome) {
super();
this.id = id;
this.nome = nome;
}
public TesteComboVO() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String toString() {
return getNome();
}
}
TesteComboAction.java
package teste.eduardo;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JComboBox;
public class TesteComboAction extends AbstractAction {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
JComboBox combo = (JComboBox) e.getSource();
TesteComboVO vo = (TesteComboVO) combo.getSelectedItem();
System.out.println(vo.getId() + " - " + vo.getNome());
}
}
agora vai! hehehe
esse teste abre uma janela com um combo, ao clicar em um dos itens, a Action escreve na saída padrão o id e o nome do indivíduo selecionado :)