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?
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?
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…
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.
[code]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();
}
}[/code]