Olá,
Tenho no evento formComponentShown do jFrame o seguinte código:
try {
TestaConexao conexao = new TestaConexao();
conexao.conectaBanco();
cQuerySql = “select * from ESTADOS order by abreviatura”;
resultado_RS = conexao.consultarDados(cQuerySql);
while (resultado_RS.next()) {
jcb_Estado.addItem(resultado_RS.getString(“ABREVIATURA”));
}
} catch(Exception e){
JOptionPane.showMessageDialog(null, “Erro aqui”, “Mensagens”, JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
Como saber qual o item do combo o usuário selecionou?
Chama um desses
jcb_Estado.getSelectedIndex();
jcb_Estado.getSelectedItem();
Sendo que vc pode usar um ActionListener ou ItemListener para pegar o evento
da seleção.
Olá,
Eu já tinha usado o evento itemStateChanged, só que ocorre o seguinte:
Na primeira vez que eu carrego o combo, ou seja, no momento que eu mostro JFrame ocorre o vento evento itemStateChanged e não se o porque, mas o combo fica somente com um item na lista e não todos os itens. Tenho 3 estados cadastrados (AM, RJ e TO) mas mostra somente o primeiro AM.
Se eu retirar o evento itemStateChanged, mostra todos.
Estranho, não deveria acontecer.
Tenho um exemplinho bem simples, que usa ActionListener e o ItemListener.
Ve se te ajuda.
public class ComboTest2 extends JPanel {
JComboBox combo;
public ComboTest2() {
this.add(getCombo());
}
public JComboBox getCombo() {
combo = new JComboBox();
combo.addItem(new Bean2("Portal", "Java"));
combo.addItem(new Bean2("www", "guj"));
combo.addItem(new Bean2("infoq", ".com"));
combo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("ActionListerer " + combo.getSelectedItem());
}
});
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
System.out.println("itemStateChanged " + e.getItem() + " "
+ e.getStateChange());
}
});
return combo;
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new ComboTest2());
frame.setSize(300, 200);
frame.setVisible(true);
}
}
class Bean2 {
String name;
String last;
public Bean2(String name, String last) {
this.name = name;
this.last = last;
}
public String toString() {
return name + " " + last;
}
}