[Resolvido]ComboBox JavaFX

2 respostas
S

Pessoal, estou trabalhando com um cenário do seguinte exemplo, onde tenho duas combobox, (Exemplo: Marca e Modelo) onde ao selecionar uma marca ford no combo de modelo vem todos os modelos da ford porém se eu trocar a Marca para chevrolet ele traz os modelos da ford mais o da chevrolet. Alguém teria uma luz no fim do tunel para mim?

OBS: Caso eu selecione direto a opção chevrolet ele trás somente os carros da chevrolet.

Este é o meu código:

Aqui seria a combo do Modelo:

@FXML
private void populaComboBoxVersao(ActionEvent event) {

if (((String) cbCliente.getSelectionModel().getSelectedItem()).equals("SIG")) {
        Modelo dir = new Modelo("");
        sistemaSig();
        cbAlias.setDisable(false);
        cbVersao.setDisable(false);
        List<String> diretorios = dir.listaDiretorios(diretorioDasVersoesSIGCliente);
            cbVersao.getItems().addAll(FXCollections.observableArrayList(diretorios));

    } else if (((String) cbCliente.getSelectionModel().getSelectedItem()).equals("SG5")) {
        Modelo dir = new Modelo("");
        sistemaSg5();
        cbAlias.setDisable(false);
        cbVersao.setDisable(false);
        List<String> diretorios = dir.listaDiretorios(diretorioDasVersoesSG5Cliente);
            cbVersao.getItems().addAll(FXCollections.observableArrayList(diretorios));
        
    } else {
        Modelo dir = new Modelo("");
        sistemaPg5();
        cbAlias.setDisable(false);
        cbVersao.setDisable(false);
        cbVersao.getSelectionModel().equals("");
        List<String> diretorios = dir.listaDiretorios(diretorioDasVersoesPG5Cliente);
            cbVersao.getItems().addAll(FXCollections.observableArrayList(diretorios));}

}

Aqui seria o combo da Marca:

@FXML

private void populaComboBoxCliente(ActionEvent event) {

ObservableList options = FXCollections.observableArrayList(SIG, PG5, SG5);

cbCliente.setItems(options);
cbCliente.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
              populaComboBoxVersao(new ActionEvent());

            }
        });
    }

2 Respostas

Andrauss

Olá, acho que você deve limpar os itens da combobox antes de populá-lo, assim:

combobox.getItems().clear();

Se não limpar ele sempre vai adicionar mais itens na lista e juntar com os que já estão lá.

S

Muito obrigado. Resolvido

Criado 23 de maio de 2016
Ultima resposta 23 de mai. de 2016
Respostas 2
Participantes 2