JComboBox - Evento seleção item

4 respostas
B

Galera,

Tenho 4 componentes combobox na minha tela. O combobox 1 lista por exemplo A, B, C. Dependendo do valor escolhido nele, o combobox 2 deve listar somente os valores não selecionados em nenhum combobox. Por exemplo, se no 1 foi selecionado A, no 2 deve listar apenas B e C.

A lógica é bem tranquila, o problema que estou encontrando é em QUAL EVENTO do combobox colocar essa lógica. Tentei vários como actionPermed, propertyChange, entre outros, porém ele não funcionou.

Quero que no evento de seleção do item do combobox ele execute um método que execute a lógica descrita acima. Pelo meus prints a lógica tá certa, o pau tá no evento.

Valeussss!!!

4 Respostas

S

Eu acho que tive um probleminha igual ao seu.

http://www.guj.com.br/posts/list/106351.java

E usei um switch case .

Se for isso boa sorte.

Sandra Haine

I

Bruno, já fiz um sistema com 12 combos interligadas entre si.Não tem mistério.Crie um grande ComboListener implementando ActionListener mesmo e dentro do seu actionPerformed vc pode trabalhar com todos esses combos(usando if-else mesmo).
Só não se esqueça de referenciar ele depois com o:
seuCombo.addActionListener(new ComboListener());
Se esquecer um(ou trocar o listener) vc se embaralha todo.Como são só 4 não tem problema(OBS.:experiência própria).

A

Bruno,

Então da uma olhada nisso ...espero que ajude...

public void actionPerformed(ActionEvent e) {
		String resposta = (String) seu_comboBox.getSelectedItem(); 
		 
		 if(resposta.equals("1"))
//coloca sua logica aqui...
então mais se você quer carregar dados em um Combobox é o seguinte....
public void carregarDados(){

		Vector<String> result = new Vector<String>();

		rs = c
		.consulta("select ds_municipio from municipio order by ds_municipio");

		

		try {
			while (rs.next()) {
			result.add(rs.getString("ds_municipio"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		 combo1.setModel(new DefaultComboBoxModel(result));  

		} 
		public void actionPerformed(ActionEvent e) {
		String atualiza= (String) combo2.getSelectedItem(); 
//aqui quando eu clicar em São Paulo ele vai carregar meu ComboBox um com todos os Municipios de São paulo
		 
		 if(atualiza.equals("São Paulo")){
			 
			
				 carregarDados();
			
		 }

Espero ter ajudado...

Att,
Axo

H

Foge um pouco pois o listener é aplicado a um JFrame mas já dá pra ter uma noção de como eles funcionam

http://emdia.wordpress.com/2008/11/04/jframe-com-listener/

Criado 4 de novembro de 2008
Ultima resposta 4 de nov. de 2008
Respostas 4
Participantes 5