arrayComboBox[contCombo].addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
ComboBoxCodigoNome c = (ComboBoxCodigoNome) arrayComboBox[?].getSelectedItem();
}
});
Pois então, como podem ver, tenho um array de combo box que foi criado dinamicamente. Estou criando um ItemListener() para fazer algums settext de acordo com o combo selecionado.
O problema pessoal, é que eu não sei como pegar o ítem selecionado no meu combo, visto que não sei o índice do array.
Como resolver isso? Pensei em algo do tipo, passa na função ItemListener() um parâmetro, que seria o indice.
Humm…certo pessoal!
Entendi o que disseram e testei aqui no meu sistem. Funcionou perfeitamente, consegui buscar a descrição referente ao meu combo selecionado.
Porém, sem querer abusar da boa vontade, o problema se extende um pouco, vejam.
Na verdade, eu simplesmente quero pegar o combo selecionado e informar o código referente aquela descrição em um jtextfield, o problema é que este jtextfield também esta em um array (lembrando que criei em arrays pois eles são criados dinamicamentes, eu não sei quando vai existir nem quantos).
Com isso, segue um pouco mais do meu código ok!
arrayComboBox[contCombo].addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
ComboBoxCodigoNome c = (ComboBoxCodigoNome) e.getItem();
arrayTextField[?].setText(c.getCodigo());
}
});
Ta vendo este arrayTextField[?], pois bem, eu agora tenho a descrição do combo com a ajuda q vocês me deram, mas agora, como vou setar o textfield com o código que eu tenho dentro do meu objeto c criado?
Vc teria que ter uma co-relacao desse Item da Combo, com seus textFields.
Em vez de retornar getCodigo(), vc poderia retornar um objeto que tivesse o par codigo + nomeDoTextFieldAoQualSeraAplicadoOCodigo
Por exemplo um objeto X, no qual vc faria X.getCodigo() e X.getTextFieldName()
Entao vc percorreria seu array de textFields…
for (JTextField field: arrayTextFields) {
if (field.getName().equalsIgnoreCase(x.getTextFieldName) {
field.setText(x.getCodigo());
}
}
Foi 1 pensamento rapido aqui, com certeza vao existir melhores solucoes…