Как загружать и удалять динамически узлы в javafx?

Экран запуска B2C Policy не сохраняет ваш последний известный профиль прогона. Эта страница предназначена для проверки вашей политики и, как таковая, каждый раз сбрасывает все параметры приложения, домена, ответа и т. Д.

0
задан fabian 18 January 2019 в 20:57
поделиться

1 ответ

Метод remove(Object) [112] удаляет элемент, только если объект, переданный в качестве параметра, является частью списка. Передача списка не приводит к изменению списка.

Также цикл реализован неправильно (если вы не хотите удалять последние RadioButton и пропускать все другие переключатели).

Используйте вместо этого removeAll(Collection), чтобы убрать переключатели. Использование clear также может быть вариантом, если нет других потомков VBox.

Пример:

private final List<RadioButton> radioButtons = new ArrayList<>();
private final ToggleGroup toggleGroup = new ToggleGroup();
private VBox vBox;

private void clearRadios() {
    vBox.getChildren().removeAll(radioButtons); // remove from scene
    radioButtons.clear(); // remove from list
    toggleGroup.getToggles().clear(); // remove from ToggleGroup
}

private void addRadios(int count) {
    for (int i = 0; i < count; i++) {
        RadioButton radio = new RadioButton();
        radio.setToggleGroup(toggleGroup);
        radioButtons.add(radio);
        vBox.getChildren().add(radio);
    }
}

@Override
public void start(Stage stage) throws Exception {
    Button btn = new Button("add");
    btn.setOnAction(evt -> addRadios(5));

    Button btn2 = new Button("clear");
    btn2.setOnAction(evt -> clearRadios());

    vBox = new VBox(btn, btn2);

    stage.setScene(new Scene(vBox, 300, 500));
    stage.show();
}
0
ответ дан fabian 18 January 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: