RadioButtonGroup
De RadioButtonGroup beheert een verzameling van RadioButton componenten. Slechts één RadioButton kan geselecteerd zijn in een RadioButtonGroup. Wanneer een gebruiker een nieuwe radio button aanvinkt, wordt de eerder geselecteerde automatisch uitgeschakeld.
Het aanmaken van een RadioButtonGroup
RadioButtonGroupDe RadioButtonGroup component rendert geen HTML-element. Het biedt alleen logica om RadioButton componenten als een groep te laten functioneren in plaats van individueel.
Maak individuele RadioButton componenten en geef ze door aan de RadioButtonGroup constructor. Slechts één knop in de groep kan op een tijd geselecteerd zijn.
Toon Code
- RadioButtonGroupView.java
Het toevoegen en verwijderen van RadioButton componenten
Je kunt RadioButton componenten opnemen in de RadioButtonGroup constructor om een groep te creëren uit de aangeboden componenten.
Om een RadioButton toe te voegen of te verwijderen uit een bestaande RadioButtonGroup, gebruik de add() of remove() methoden.
RadioButtonDe RadioButton component heeft de getButtonGroup() methode, die de RadioButtonGroup retourneert waartoe deze behoort, of null als het geen groep heeft.
Nesting 25.11
Net als andere componenten kun je een RadioButtonGroup nestelen binnen een container, zodat je niet elke individuele RadioButton direct hoeft toe te voegen.
RadioButton agree = new RadioButton("Akkoord");
RadioButton neutral = new RadioButton("Neutraal");
RadioButton disagree = new RadioButton("Niet eens");
RadioButtonGroup group = new RadioButtonGroup("keuzes", agree, neutral, disagree);
Fieldset fieldset = new Fieldset("Opties");
fieldset.add(group);
Gebruik van RadioButtonGroupChangeEvent
Elke RadioButton kan zijn eigen eventlistener hebben om te detecteren wanneer een gebruiker deze in- of uitschakelt. Een voordeel van het gebruik van een RadioButtonGroup is echter dat je een enkele eventlistener kunt gebruiken die reageert op alle radio buttons in de groep met de RadioButtonGroupChangeEvent.
Eventlisteners toevoegen aan elke RadioButton
agree.onValueChange(e -> changeEvent());
neutral.onValueChange(e -> changeEvent());
disagree.onValueChange(e -> changeEvent());
Een enkele eventlistener toevoegen aan de RadioButtonGroup
RadioButtonGroup group = new RadioButtonGroup("keuzes", agree, neutral, disagree);
group.onChange(e -> changeEvent());
Het volgende voorbeeld van Drawer Plaatsing gebruikt de RadioButtonGroupChangeEvent om automatisch de plaatsing van de Drawer component te wijzigen:
Toon Code
- DrawerPlacementView.java
Naamgeving
De name eigenschap in een RadioButtonGroup groepeert gerelateerde RadioButtons samen, zodat gebruikers een enkele keuze kunnen maken uit de aangeboden opties en exclusiviteit onder de RadioButtons afdwingt. De naam van een groep wordt echter niet weerspiegeld in de DOM en is een handige utility voor de Java-ontwikkelaar.