ошибка с выбором параметров в двух отдельных группах переключения в javafx - PullRequest
0 голосов
/ 19 февраля 2019

Группа переключателей JavaFx T1 и T2

Я пытаюсь реализовать несколько параметров переключения в двух отдельных vbox T1 и T2.с макетом это выглядит хорошо, но с точки зрения функциональности я наблюдаю, что первые две опции T1 реплицируются с T2, т.е. всякий раз, когда я выбираю NONE / PIANO в T1 - CHOIR / ASDF выбираются автоматически и наоборот.Я хочу, чтобы варианты для T1 и T2 выбирались независимо.Ниже приведен код реализации

for(int m = 0; m < category.getOneOptionProperties().size(); m++) {
            VBox vbox = new VBox();
            ToggleGroup group = new ToggleGroup();
            vbox.setStyle("-fx-border-color: black; -fx-background-color: white;");
//          System.out.println("category.getOneOptionProperties().size()::"+category.getOneOptionProperties().size());
//          System.out.println("category.getOneOptionProperties().get(m).getOptions().size()::"+category.getOneOptionProperties().get(m).getOptions().size());

            for(int j = 0; j < category.getOneOptionProperties().get(m).getOptions().size(); j++) {
                RadioButton box = new RadioButton(category.getOneOptionProperties().get(m).getOptions().get(j).getName());
                box.setPadding(new Insets(10, 30, 10, 10));
                box.setToggleGroup(group);
                if(category.getOneOptionProperties().get(0).getChoosenId() == j ) {
                    box.setSelected(true);
                }
                vbox.getChildren().add(box);
            }
            hbox.getChildren().add(vbox);

            group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
                  @Override
                public void changed(ObservableValue<? extends Toggle> ov,Toggle old_toggle, Toggle new_toggle) {
                        if (group.getSelectedToggle() != null) {
                            String selectedToggle = ((RadioButton)group.getSelectedToggle()).getText();
                            for(int i=0; i<ctrl.getCategories().size(); i++) {
                                for(int k=0; k<category.getOneOptionProperties().get(0).getOptions().size(); k++) {
                                    if(ctrl.getCategories().get(i).getTitle().equalsIgnoreCase(idToName(selectedButtonId))) {
                                        if(category.getOneOptionProperties().get(0).getOptions().get(k).getName().equals(selectedToggle)) {
                                            state.getActiveMusicalEnvironment().getActiveMode().getMusicControls().getCategories().get(i).getOneOptionProperties().get(0).setChoosenId(k);
                                            FSGuiCommunications.ctrlSendStateOSC(state);
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
...