XdevRadioButton

Anfang  Zurück  Vor

Letzte Änderung 18.02.2014

 

Radiobuttons dienen zur Auswahl verschiedener Optionen und werden daher oft auch als Optionsfelder bezeichnet. Radiobuttons werden immer als Radiobutton-Gruppe eingesetzt. Eine Radiobutton-Gruppe bildet genauso wie eine List- oder Combobox alle Werte aus einem Datenfeld ab, z.B. verschiedene Farbwerte, nur mit dem Unterschied, dass Radiobuttons i.d.R. vom Entwickler fest in die Oberfläche implementiert werden, während List- und Combobox-Inhalte meistens dynamisch generiert werden. Radiobuttons sind somit eine Alternative zu einer List- oder Combobox, wenn die jeweiligen Werte bereits bei der Entwicklung bekannt sind und die Wahrscheinlichkeit sehr gering ist, dass sich diese in der Zukunft ändern. Ist jedoch absehbar, dass sich Werte ändern oder neu dazu kommen, dann sollten Sie anstelle von Radiobuttons eine List- oder Combobox einsetzen.

 

Für die individuelle Beschriftung besitzen Radiobuttons einen eigenen Text-Container mit all dessen Möglichkeiten. Um Text einzugeben, müssen Sie den Radiobutton mit Doppelklick anklicken bis der Cursor erscheint.

 

Radiobutton

 

 

Hinweise: Für dieses Beispiel benötigen Sie die Beispiel-Datenbank kfz.

 

 

Regeln für die Darstellung beachten

 

Ein Radiobutton kann lediglich zwei Zustände annehmen: selektiert oder nicht selektiert. In einer Radiobutton-Gruppe darf jedoch immer nur 1 Radiobutton selektiert sein. Eine andere Darstellung, z.B. alleinstehender Radiobutton, ist zwar programmiertechnisch möglich, verstößt jedoch gegen Usability-Regeln. Über die Eigenschaften bei Selektiert können Sie einen Radiobutton auch vorselektieren, sodass schon vor der ersten Auswahl selektiert dargestellt wird.

 

Falsch: Radiobuttons müssen immer aus einer Gruppe von mindestens 2 Radiobuttons bestehen. Bei diesem Fall handelt es sich um eine Ja / Nein Option, für die Sie eine Checkbox verwenden müssen.

Radsigrau

 

Falsch: Es muss immer 1 Radiobutton selektiert sein.

Radschwweiss

 

Falsch: Es darf immer nur 1 Radiobutton selektiert sein. Wenn die Auswahl mehrerer Optionen möglich sein soll, dann müssen Sie Checkboxen verwenden.

Radschwweissgr

 

 

 

Einsatz nur als Button-Gruppe

 

Um Radiobuttons zu einer Gruppe zusammen zu fassen, müssen Sie bei jedem Radiobutton in den Eigenschaften bei Button-Gruppe/Datenfeld jeweils denselben Gruppen-Namen manuell eintragen. Als Gruppen-Namen können Sie dabei eine beliebige Zeichenkette angeben. Auch Umlaute, Sonder- und Leerzeichen sind erlaubt. Dies gilt jedoch nur für Radiobuttons, die nicht zu einem bestimmten Formular gehören, sondern unabhängig von einem Formular eingesetzt werden.

 

clip0117

 

 

Alle Radiobuttons mit gleichem Datenfeld verknüpfen

 

Jeder einzelne Radiobutton einer Gruppe steht für einen Wert in einem Datenfeld, z.B. für eine Farbe. Deshalb muss jeder Radiobutton mit demselben Datenfeld verknüpft werden. Beim Speichern des Formulars wird dann nur der Rückgabewert des selektierten Radiobuttons in das verknüpfte Datenfeld gespeichert. Umgekehrt wird beim Füllen des Formulars mit einem Datensatz immer nur der Radiobutton selektiert, bei dem der Wert aus dem verknüpften Datenfeld mit dem im Radiobutton hinterlegtem Wert für die Selektierung übereinstimmt.

 

Das verknüpfte Datenfeld wird automatisch als Radiobutton-Gruppen-Name verwendet. Die Verknüpfung erfolgt genauso wie bei anderen Formular-Komponenten, indem Sie im Projektmanagement bei Virtuelle Tabellen das entsprechende Datenfeld per Drag&Drop nacheinander auf alle Radiobuttons einer Gruppe ziehen. Das verknüpfte Datenfeld wird automatisch in den Eigenschaften bei Button-Gruppe / Datenfeld hinterlegt.

 

clip0118

 

 

RadDat

Alle Radiobuttons werden mit demselben Datenfeld verknüpft. Jeder Radiobutton steht für einen Wert im verknüpften Datenfeld, der im Radiobutton fest hinterlegt werden muss.

 

 

Rückgabewerte und Werte für Selektierung

 

In den Eigenschaften bei Rückgabewert müssen Sie einen Wert festlegen, der im verknüpften Datenfeld gespeichert werden soll, wenn der Radiobutton selektiert ist. Den selben Wert müssen Sie bei Wert für Selektierung festlegen. Dieser Wert selektiert den Radiobutton bei der Ausgabe des Datensatzes im Formular. I.d.R. handelt es sich beim Rückgabewert und beim Wert für die Selektierung um ein- und dieselbe ID.

 

Alternativ können Sie hier jedoch auch aussagekräftige Werte angeben, falls Sie diese im entsprechenden Datenfeld an Stelle von IDs verwenden.

 

Als Werte für die Selektierung können Sie falls nötig sogar mehrere gültige Werte durch Komma getrennt angeben.

 

Rückgabewert: ID

clip0119

Bei Rückgabewert und Werte für die Selektierung geben Sie i.d.R. die ID an, die der Radiobutton speichern soll, oder durch die der Radiobutton beim Füllen des Formulars selektiert wird.

 

Rückgabewert: Daten

clip0120

Sie können auch aussagekräftige Werte angeben, falls Sie diese im Datenfeld verwenden. Dies wird in der Praxis häufig gemacht, ist jedoch nicht empfehlenswert.

 

Werte für die Selektierung

clip0121

Als Werte für die Selektierung können Sie sogar mehrere Werte angeben, falls in einer älteren Datenbank verschiedene Werte für dieselbe Bedeutung gespeichert wurden.

 

 

 

Wichtige Eigenschaften

 

Rückgabewert(Speichern): Beim Abspeichern des Radiobuttons wird der hier hinterlegte Wert in das Datenfeld geschrieben. I.d.R. werden hier IDs angegeben.

Werte für die Selektierung (Ausgabe): Wenn die Formular-Füll-Methode dem Radiobutton den hier angegebenen Wert übergibt, dann wird der Radiobutton selektiert.

 

 

 

Wichtigste Methoden

 

getSelectedRadioButtonInGroup() : XdevRadioButton

 

Diese Methode prüft, welcher RadioButton der gleichen Gruppe angewählt ist und gibt diesen zurück.

Rückgabewert: Der XdevRadioButton, welcher in der gleichen Gruppe ist als der RadioButton, dessen Methodenaufruf genutzt wurde und der angewählt ist.

 

// Liest den selektierten RadioButton der gleichen Buttongruppe aus und gibt diesen zurück
XdevRadioButton selectedRadioButton = radioButton.getSelectedRadioButtonInGroup();

 

isSelected() : boolean

 

Diese Methode prüft, ob der RadioButton angewählt ist oder nicht.

Rückgabewert: Der boolsche Wert, der angibt, ob der RadioButton ausgewählt ist. Der Wert true bedeutet selektiert, false bedeutet nicht selektiert.

 

// Prüft, ob die Komponente angewählt ist.

// Falls dem so ist, wird ein Text auf der Konsole ausgegeben
if(radioButton.isSelected())
{
   System.out.println("Möglichkeit 3 wurde ausgewählt.");
}

 

setSelected(boolean b)

 

Diese Methode legt fest, ob der RadioButton angewählt ist oder nicht. Ist der RadioButton in einer Buttongruppe und ist ein anderer RadioButton aus dieser Gruppe selektiert, so wird dieser deselektiert.

b - Der boolsche Wert, der angibt, ob der RadioButton angewählt ist. Der Wert true bedeutet selektiert, false bedeutet nicht selektiert.

 

// Selektiert den RadioButton
radioButton.setselected(true);

 

 

Hinweise:

 

Radiobuttons sind nur dann geeignet, wenn gleichzeitig nachfolgende Punkte zutreffen. Ansonsten müssen Sie den Einsatz von Checkboxen, einer List- oder Combobox prüfen.

 

• Sie wollen mindestens 2 oder mehrere Optionen zur Auswahl anbieten

• Der Anwender muss eine Auswahl treffen

• Der Anwender soll nur 1 Option auswählen können

• Die Auswahl-Optionen müssen später nicht mehr dynamisch erweitert, z.B. männlich - weiblich.

 

Wenn Sie davon ausgehen müssen, dass zu einem späteren Zeitpunkt weitere Auswahl-Optionen dazu kommen können, z.B. bei einer Auswahl verschiedener Kreditkarten, dann sollten Sie unbedingt auf den Einsatz von Radiobuttons verzichten und stattdessen eine List- oder Combobox verwenden. Denn falls Sie einen weiteren Kreditkarten-Anbieter aufnehmen möchten, dann müssten Sie in die Anwendungslogik eingreifen und das Formular oder sogar mehrere Formulare mit einem weiteren Radiobutton erweitern. Das ist nicht nur ein erheblicher Aufwand, da die Anwendung neu kompiliert und anschließend ein Update herausgegeben werden müsste, sondern stellt zudem eine große, jedoch völlig unnötige Fehlerquelle dar. Beim Einsatz einer List- oder Combobox müssten Sie dagegen lediglich eine Schlüssel-Tabelle, z.B. eine Tabelle Kreditkarten_Anbieter, mit einem neuen Eintrag, sprich dem neuen Kreditkarten-Anbieter erweitern. Diese Erweiterung lässt sich problemlos über die Admin-Oberfläche Ihrer Anwendung oder über das Datenbank-Frontend Ihrer Datenbank vornehmen, ohne dass ein Eingriff in die Anwendung selbst erfolgen muss.

 

Hinweise:

Zusammengehörende Radiobuttons werden gerne mit einem beschrifteten Rahmen dargestellt. Den Rahmen können Sie einem Container ohne Hintergrund zuweisen.

 

Hinweis:

Wenn sich die Radiobuttons in einem Formular befinden, das Sie mit einer Funktion auslesen möchten, sollten Sie die Radiobuttons nicht in den Container einfügen, sondern den Container mit Rahmen zuerst neben den Radiobuttons anlegen und diesen dann unter die Radiobutton-Gruppe schieben, sodass die Radiobuttons auch weiterhin direkt im Formular liegen.