ToggleGroup explicit management

Mark Fortner phidias51 at gmail.com
Tue Apr 9 10:43:44 PDT 2013


Does it work if you do this?

toggleGroup.getToggles().addAll(new RadioMenuItem("One"), new
RadioMenuItem("Two")...);

Cheers,

Mark



On Tue, Apr 9, 2013 at 10:29 AM, Scott Palmer <swpalmer at gmail.com> wrote:

> The docs for ToggleGroup say:
> "Generally ToggleGroups are managed automatically simply by specifying the
> name of a ToggleGroup on the
> Toggle<
> http://docs.oracle.com/javafx/2/api/javafx/scene/control/Toggle.html>,
> but in some situations it is desirable to explicitly manage which
> ToggleGroup is used by
> Toggles<
> http://docs.oracle.com/javafx/2/api/javafx/scene/control/Toggle.html>
> ."
>
> Well, I tried to "explicitly manage" them, but I get :
> ...
> Caused by: java.lang.IllegalArgumentException: Duplicate toggles are not
> allow in a ToggleGroup.
>     at
> javafx.scene.control.ToggleGroup$1.onProposedChange(ToggleGroup.java:63)
>     at
>
> com.sun.javafx.collections.VetoableObservableList.add(VetoableObservableList.java:165)
>     at
>
> com.sun.javafx.collections.ObservableListWrapper.add(ObservableListWrapper.java:144)
>     at
> javafx.scene.control.RadioMenuItem$1.invalidated(RadioMenuItem.java:151)
>     at
>
> javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:129)
>     at
> javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:163)
>     at
> javafx.scene.control.RadioMenuItem.setToggleGroup(RadioMenuItem.java:134)
>     at javafx.scene.control.ToggleGroup$1.onChanged(ToggleGroup.java:87)
>     at
>
> com.sun.javafx.collections.VetoableObservableList.callObservers(VetoableObservableList.java:83)
>     at
>
> com.sun.javafx.collections.ObservableListWrapper.addAll(ObservableListWrapper.java:171)
>     at
>
> com.sun.javafx.collections.VetoableObservableList.addAll(VetoableObservableList.java:108)
>     at
>
> com.sun.javafx.collections.ObservableListWrapper.addAll(ObservableListWrapper.java:160)
>     at
>
> com.sun.javafx.collections.ObservableListWrapper.addAll(ObservableListWrapper.java:309)
>     at toggletest.ToggleTest.start(ToggleTest.java:34)
>     ...
>
> This is just by doing:
>
>         ToggleGroup toggleGroup = new ToggleGroup();
>         RadioMenuItem [] radioButtons = new RadioMenuItem[] {
>             new RadioMenuItem("One"),
>             new RadioMenuItem("Two"),
>             new RadioMenuItem("Three")
>         };
>
>         toggleGroup.getToggles().addAll(radioButtons);
>
>
> Bug?
>
> Scott
>


More information about the openjfx-dev mailing list