2016-10-10 11 views
0

Ich habe drei Kombinationsfeld: Land, Bundesland und StadtCombobox abhängig von einer anderen Combobox - JavaFX

Wie kann ich abhängig von anderen werden? Zum Beispiel, wenn ich Brasilien auswähle, erscheinen ihre Staaten und später die Städte des ausgewählten Staates. Aber wenn ich auswähle, Vereinigte Staaten im Land werden ihre Zustände zeigen

Ich benutze MySQL als die Datenbank, wenn Sie irgendeine Konfiguration in der Datenbank auch brauchen, sagen Sie mir ... Es ist das erste Mal, dass Sie damit arbeiten, danke sehr viel.

+0

Obs: Beispiel, wie ich eine Combobox bevölkert public void country() { listCountry = countryDAO.show(); observableListCountry = FXCollections.observableArrayList (listCountry); cbxCountry.setItems (ObservableList); } – Junior

+1

Bitte Code nicht in den Kommentaren eingeben: [Bearbeiten] Sie Ihre Frage und fügen Sie sie dort hinzu. –

Antwort

1

Registrieren Sie ein Zuhörer mit dem Land Kombinationsfeld und aktualisieren den Zustand Kombinationsfeld, wenn die ausgewählten Artikel Änderungen:

cbxCountry.valueProperty().addListener((obs, oldValue, newValue) -> { 
    if (newValue == null) { 
     cbxState.getItems().clear(); 
     cbxState.setDisable(true); 
    } else { 
     // sample code, adapt as needed: 
     List<State> states = stateDAO.getStatesForCountry(newValue); 
     cbxState.getItems().setAll(states); 
     cbxState.setDisable(false); 
    } 
}); 

Sie auch diese mit Bindungen tun könnte, wenn Sie bevorzugen:

cbxState.itemsProperty().bind(Bindings.createObjectBinding(() -> { 
    Country country = cbxCountry.getValue(); 
    if (country == null) { 
     return FXCollections.observableArrayList(); 
    } else { 
     List<State> states = stateDAO.getStatesForCountry(country); 
     return FXCollections.observableArrayList(states); 
    } 
}, 
cbxCountry.valueProperty()); 

(und wenn Sie die Deaktivierungsfunktionalität von der obigen Lösung auch tun möchten, tun Sie cbxState.disableProperty().bind(cbxCountry.valueProperty().isNull());).

Verwandte Themen