Могу ли я (Javafx) использовать элементы ComboBox для отображения страницы?Мне нужно связать каждый параметр в комбинированном списке FilmCombo с файлом FXML - PullRequest
0 голосов
/ 09 марта 2019

Мне нужно связать каждый параметр в комбинированном фильме с файлами fxml, и мне нужно изменить параметры в комбинированном времени, когда я нажимаю другой параметр в комбинированном фильме.

@FXML
public ComboBox<String> filmCombo = new ComboBox<String>();
 ObservableList film = FXCollections.observableArrayList("Movie 1", "Movie 2", "Movie 3", "Movie 4", "Movie 5", "Movie 6", "Movie 7", "Movie 8", "Movie 9", "Movie 10");
//Listen for selection changes

@FXML
public ComboBox<String> timeCombo;
ObservableList time = FXCollections.observableArrayList("1:15", "4:15", "7:15");

@Override
public void initialize(URL location, ResourceBundle resources) {
    filmCombo.setValue("Movie 1");
    filmCombo.setVisibleRowCount(4);


    timeCombo.setItems(time);
    filmCombo.setItems(film);

    filmCombo.getSelectionModel().selectedItemProperty().addListener( (v, oldValue, newValue)  -> System.out.println(newValue));
    timeCombo.getSelectionModel().selectedItemProperty().addListener( (v, oldValue, newValue)  -> System.out.println(newValue));
}

1 Ответ

0 голосов
/ 10 марта 2019

ComboBox имеет OnAction, как кнопка.

filmCombo.setOnAction((ActionEvent event) -> {
        String movieSelected = filmCombo.getValue().toString();
        if (movieSelected.equals("movie 1")) {//or use a switch statement
            time.addAll("time 1", "time 2");//set the items in the list for the time comboBox
            //add any other actions
            showRelevantScreen();//show another screen if needed
        }
    });
...