DMT*_*T82 2 java lambda javafx java-8 jfoenix
我将JFoenix库用于我的Comboboxes.
' boxLeague.getSelectionModel().selectedItemProperty().addListener((observable,oldValue,newValue) - > boxTeams.setItems(listPremierLeague)); 当从boxLeague Combobox中选择任何内容时,'会将所有文本放到boxTeams Combobox中,但我想要做的是当在boxLeague中选择特定项时,然后填充另一个组合框.
public class Controller implements Initializable {
@FXML
private JFXComboBox<String> boxLeague;
@FXML
private JFXComboBox<String> boxTeams;
@FXML
private JFXComboBox<String> boxPlayers;
ObservableList<String> listLeagues = FXCollections.observableArrayList(
        "Bundesliga", "La Liga", "Ligue 1", "Premier League", "Serie A", "Champions League", "Europa League");
ObservableList<String> listPremierLeague = FXCollections.observableArrayList(
        "Arsenal", "Bournemouth", "Brighton", "Burnley", "Chelsea", "Crystal Palace", "Everton");
@Override
public void initialize(URL location, ResourceBundle resources) {
    boxLeague.setItems(listLeagues);
    boxLeague.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> boxTeams.setItems(listPremierLeague));
}
}
在你的听众内部,你需要找出哪个联盟被选中了相应的项目boxTeams.
boxLeague.getSelectionModel().selectedItemProperty().addListener(
  (observable, oldValue, newValue) -> { 
      if (newValue.equals("Premier League")) {
          boxTeams.setItems(listPremierLeague));
      } // else if ... (or use a switch-case here)
  }
);
请注意,如果您不将Strings用于联盟和团队,但可以创建自己的类,则可以进一步改进.
| 归档时间: | 
 | 
| 查看次数: | 1008 次 | 
| 最近记录: |