JavaFX RadioButtons aus ToggleGroup löschen

Diskutiere RadioButtons aus ToggleGroup löschen im AWT, Swing, JavaFX & SWT Bereich.
B

busgi

Hallo,

Kurze Frage.

Wie die Überschrift auch schon beschreibt: Kann man RadioButtons aus einer ToggleGroup löschen?
Ich wollte die letzten hinzugefügten RadioButtons aus der Gruppe löschen, stattdessen befülle ich meine GridPane mit weiteren RadioButtons.

Ich habe die toogle.getToogles.clear() ausprobiert, jedoch wird dabei die Liste mit den RadioButton nicht gelöscht.
 
A

abc66

Na dann zeig mal deinen Code ;) Nicht auszuschließen, dass da noch eine Phantomreferenz herumgeistert.
 
B

busgi

Code:
Model model=allQuestions[index];                                              //Hier habe ich alle Fragen sowohl auch antworten drin
String answer[]=model.getAllAnswers();
      radiobutton = new RadioButton[answers.length];
        for (int j = 0; j < answers.length; j++) {
            radiobutton[j] = new RadioButton(answers[j]);
            radiobutton[j].setToggleGroup(toggle);
            grid.add(radio[j], 0, j);
        }
        toggle.getToggles().clear();
        index++;

    }
 
dzim

dzim

Kann es sein, dass du die RadioButtons, die auf dem Grid schon liegen aber vorher nicht löschst? So wie es aussieht, zeichnest du einfach neue über die bestehenden und entfernst vorher nicht die alten aus dem Grid. Die ToggleGroup ist kein UI-Element sondern unterstützt nur beim Event-Handling, welcher Toggle gerade aktiv ist...
Mach mal nach jedem deiner for-Loops mal ein #println von grid.getChildren() - ich vermute mal, die Liste wird immer grösser.

Das sauberste wäre vor jedem radiobutton[j] = new RadioButton(answers[j]); einfach if (radiobutton[j] != null) { GridPane.getChildren().remove(radiobutton[j]); } aufzurufen.
 
B

busgi

Kann es sein, dass du die RadioButtons, die auf dem Grid schon liegen aber vorher nicht löschst? So wie es aussieht, zeichnest du einfach neue über die bestehenden und entfernst vorher nicht die alten aus dem Grid. Die ToggleGroup ist kein UI-Element sondern unterstützt nur beim Event-Handling, welcher Toggle gerade aktiv ist...
Mach mal nach jedem deiner for-Loops mal ein #println von grid.getChildren() - ich vermute mal, die Liste wird immer grösser.

Das sauberste wäre vor jedem radiobutton[j] = new RadioButton(answers[j]); einfach if (radiobutton[j] != null) { GridPane.getChildren().remove(radiobutton[j]); } aufzurufen.

Hi, vielen Dank für die Antwort.
Genau das hat der Code gemacht. Im Prinzip einfach neue RadioButtons reingezeichnet ohne das ich die vorherigen gelöscht habe. Ich habe den Fehler mittlerweile beseitigt :)
 
Thema: 

RadioButtons aus ToggleGroup löschen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben