Alterar um TextField de acordo com o ítem selecionado no ComboBox

8 respostas
P

Gostaria de saber como poderia carregar um TextFiel de acordo com o ítem selecionado no ComboBox com dados do Banco de Dados, por exemplo, tenho uma tabela com os campos “Nº do Banco”, “Agencia” e “Nome do Banco”. Num ComboBox mostro o nome dos bancos e de acordo com o banco selecionado, gostaria que fosse alterado a agencia que é mostrada em um TextField.

Aqui eu carrego o ComboBox:

q5.open("select * from bancos order by nomeBanco desc");
        q5.last();
        do {
            jComboBoxBanco.addItem(q5.fieldbyname("nomeBanco"));            
        } while (q5.prev());

Como carregar um TextFiedl com:

q5.fieldbyname("agencia")

8 Respostas

E
P

Eric não entendi!
fiz isso no ActionPerformed do ComboBox:

jTextFieldAgencia.setText(q5.fieldbyname("agencia"));

o TextField vem carregado corretamente, mas qdo eu seleciono outro ítem no combobox ele limpa o textfield e da uma msg de “Field inválido”.

E

Imagino que esse “Field inválido” é resultante do método “q5.fieldbyname”. Pode ser que a String passada seja inválida.

O setText do JTextField apenas seta o texto que deve ser exibido no text field, não poderia lançar este erro.

P

na verdade esse texto não um texto e sim o nome do campo na tabela.

J
public class B {

	public static void main(String arg[]) throws Exception {
		new B();
	}
	JComboBox combo = new JComboBox();
	JTextField tf = new JTextField(5);
	
	public B() throws Exception {
		JFrame tela = new JFrame();
		tela.setDefaultCloseOperation(tela.EXIT_ON_CLOSE);
		tela.setSize(300, 300);
		
		combo.addItem("item um");
		combo.addItem("item dois");
		combo.addItem("item três");
		combo.addItemListener(new ItemListener() {
			
			@Override
			public void itemStateChanged(ItemEvent e) {
				B.this.tf.setText(B.this.combo.getSelectedItem().toString());
			}
		});
		tela.setLayout(new FlowLayout());
		tela.add(combo);
		tela.add(tf);
		tela.setVisible(true);

	}
}
Espero que te ajude! abraços
E

O nome do campo na tabela vem de onde?

P

tenho uma classe que faz isso, por exemplo: jComboBoxBanco.addItem(q5.fieldbyname("nomeBanco")); carrega o ComboBox.

E

Então, imagino que a mensagem de “Field inválido” esteja vindo desta classe.

E siga a dica do amigo janjan e adicione ItemListener no combo box ao invés de ActionListener.

Criado 28 de outubro de 2010
Ultima resposta 28 de out. de 2010
Respostas 8
Participantes 3