Dúvidas sobre Combobox

2 respostas
D

A situação é a seguinte:

Populei meu combobox de Estados através de um arquivo em disco e logo que um estado é selecionado surge um outro combobox para as Cidades.
Dúvida: como preencher o combobox de Cidades referente ao Estado selecionado?

2 Respostas

H

cara vc tem que especificar um pouco melhor… vc ta usando o que java ee ou se? … pelo que vi (carregar arquivo do disco) o mais provavel seje que esteje trabalhando com swing (java se)… vc vai recuperar as cidades de onde? outro arquivo?..

especifique melhor que ai poderei te ajudar melhor…

D

Sim... seria JSE!
Fui na tentativa e erro aqui e consegui fazer o que eu queria!!
Segue o código. Caso alguém tenha alguma dica/crítica, favor postar pois ainda estou apredendo OO e Java.

import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Teste extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JComboBox cbxEstado = null;

	private JComboBox cbxCidade = null;

	public Teste() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(618, 294);
		this.setContentPane(getJContentPane());
		this.setTitle("TesteCombo");
		this.setVisible(true);
		cbxCidade.setVisible(false);
	}

	private JPanel getJContentPane(){
		if (jContentPane == null) {
			GridLayout gridLayout = new GridLayout();
			gridLayout.setRows(1);
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getCbxEstado(), null);
			jContentPane.add(getCbxCidade(),null);
		}
		return jContentPane;
	}

	// Adiciona um Combobox Estado e carrega um arquivo em disco.
	private JComboBox getCbxEstado() {
		if (cbxEstado == null) {
			cbxEstado = new JComboBox();
			cbxEstado.setBounds(new Rectangle(89, 75, 280, 25));
			cbxEstado.addItem("");
		}

		try {
			String lerEstado;

			BufferedReader fReader = new BufferedReader (new FileReader("C:\\Estados.txt"));

			while((lerEstado = fReader.readLine()) != null){
				cbxEstado.addItem(lerEstado);

			}
			fReader.close();
		} catch (IOException e1){
			System.out.println(e1.getMessage());
		}



		cbxEstado.addMouseListener(new MouseListener(){

			public void mouseClicked(MouseEvent arg0) {
				//cbxCidade.setVisible(true);
			}

			public void mouseEntered(MouseEvent arg0) {
				// TODO Auto-generated method stub

			}

			public void mouseExited(MouseEvent arg0) {
				// TODO Auto-generated method stub

			}

			public void mousePressed(MouseEvent arg0) {
				// TODO Auto-generated method stub
			}

			public void mouseReleased(MouseEvent arg0) {
				// TODO Auto-generated method stub

			}

		});

		// Adiciona o próximo Combobox para Cidades quando o valor do Combobox Estado é modificado.

		cbxEstado.addItemListener(new ItemListener(){

			public void itemStateChanged(ItemEvent arg0) {

				cbxCidade.setVisible(true);
				if(cbxEstado.getSelectedItem().equals("MG")){
					try {
						BufferedReader fReaderC = new BufferedReader(new FileReader("C:\\Cidades.txt"));
						String lerCidade;
						cbxCidade.removeAllItems();
						while((lerCidade = fReaderC.readLine()) != null){
							
							cbxCidade.addItem(lerCidade);
						}
						
						
						
					} catch (Exception e) {
						// TODO: handle exception
					}
				}
			}
		});

		return cbxEstado;
	}

	private JComboBox getCbxCidade() {
		if (cbxCidade == null) {
			cbxCidade = new JComboBox();
			cbxCidade.setBounds(new Rectangle(89, 150, 280, 25));
			cbxCidade.addItem("");

			cbxEstado.addMouseListener(new MouseListener(){

				public void mouseClicked(MouseEvent arg0){

				}

				public void mouseEntered(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mouseExited(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mousePressed(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mouseReleased(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}
			});

		}
		return cbxCidade;
	}

	public static void main(String args[]){
		Teste test = new Teste();
	}
}
Criado 14 de agosto de 2008
Ultima resposta 14 de ago. de 2008
Respostas 2
Participantes 2