Radiobutton
Ein Radiobutton (auch Optionsfeld, fälschlicherweise auch Mehrfachoptionsfeld oder Optionsschaltfläche) ist ein Steuerelement grafischer Benutzeroberflächen, das der Auswahl genau einer Option aus mehreren dient.
Funktionsweise[Bearbeiten]
Radiobuttons sind meist unter-, manchmal auch nebeneinander angeordnete kleine Kreise, gefolgt von kurzen Beschreibungstexten. Die Kreise können zwei Zustände annehmen: nicht markiert (leer Radiobutton nicht ausgewählt) und markiert (mit einem Punkt in der Mitte Radiobutton ausgewählt). Zeichenorientierte Benutzeroberflächen (TUI) stellen den markierten Zustand in der Regel als (•) und den nicht markierten Zustand als ( ) dar.<ref>Designing Forms > Controls Summary > Option Button Control. In: Microsoft Visual Basic 1.0 for MS-DOS (VBDOS.HLP). Microsoft, 1992 (englisch).</ref> Von mehreren Radiobuttons einer Gruppe kann immer nur einer markiert werden. Sobald ein Radiobutton markiert wird, wird eine eventuell vorhandene Markierung eines anderen Radiobuttons derselben Gruppe gelöscht. Der Initialzustand kann entweder sein, dass ein bestimmter oder kein einziger Radiobutton vorgewählt ist. Ob es, wenn ein Radiobutton markiert ist, möglich ist, die Gruppe wieder in einen Zustand zu bringen, in dem kein einziger Radiobutton markiert ist, hängt von der Implementierung ab.
Wortherkunft[Bearbeiten]
Der Name Radiobutton kommt daher, weil dieses Verhalten den mechanischen Tasten ähnelt, die es früher häufig bei Radiogeräten gab. Wird eine dieser Tasten gedrückt, rastet sie ein und gleichzeitig wird die bisher gedrückte Taste gelöst.
Am Computer muss der Auswahlvorgang in der Regel durch Mausklick auf eine Schaltfläche zur Bestätigung abgeschlossen werden.
Abgrenzung[Bearbeiten]
Die ähnlich gestalteten Checkboxen erlauben nicht nur die Auswahl eines Punktes der Liste, sondern beliebig vieler.
Programmierung[Bearbeiten]
In den meist hierarchisch aufgebauten GUI-Toolkits schließen sich diejenigen Optionsfelder gegenseitig aus, die derselben, meist durch einen beschrifteten Rahmen visualisierten Gruppe zugeordnet wurden (siehe Bildschirmfoto).
HTML[Bearbeiten]
Optionsfelder können seit HTML 2.0 in Webseiten mit Hilfe des Tags <syntaxhighlight lang="html" style="white-space:nowrap" inline><input type="radio"></syntaxhighlight> genutzt werden.<ref>Vorlage:RFC-Internet</ref> Der aktuelle Wert des Optionsfeldes kann über das boolsche Attribut checked gesetzt und gelesen werden. Seit Version 3.0 können Formularelemente über das boolsche Attribut disabled deaktiviert werden.<ref>Dave Raggett: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. (TXT; 372 kB) In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. World Wide Web Consortium, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., S. 130 ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Zusammengehörende und sich damit gegenseitig ausschließende Optionsfelder müssen dabei denselben Namen (Attribut name) tragen.
XForms nutzt Optionsfelder zur Darstellung von select1-Elementen, wenn das vollständige Erscheinungsbild (appearance="full") gewählt wurde.<ref>Micah Dubinko et al.: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. The select1 ElementSkriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
C#[Bearbeiten]
Das folgende C#-Beispiel verdeutlicht die Nutzung der Klasse System.Windows.Forms.RadioButton aus dem Komponentenframework Windows Forms.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Microsoft ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> Es zeigt die Implementierung eines Fensters mit drei Optionsfeldern und einem Textfeld. Das Klick-Ereignis der einzelnen Optionsfelder ist mit einer gemeinsamen Ereignisbehandlungsroutine verknüpft, die die Beschriftung des markierten Optionsfeldes dem Text des Textfeldes zuweist.
<syntaxhighlight lang="c#"> using System.Windows.Forms;
public class MainForm : System.Windows.Forms.Form { private System.Windows.Forms.RadioButton[] radioButtons; private System.Windows.Forms.TextBox outputTextBox; private System.Windows.Forms.GroupBox groupBox;
// Konstruktor des Hauptfensters. public MainForm() { InitializeRadioButtonsAndTextBox(); }
// Startet die Anwendung und erzeugt das Hauptfenster durch Aufruf des Konstruktors.
public static void Main()
{
Application.Run(new MainForm());
}
// Initialisiert die Radiobuttons und das Textfeld. private void InitializeRadioButtonsAndTextBox() { // Erzeugt 3 Radiobuttons und ein Textfeld durch Aufruf der Standardkonstruktoren. int radioButtonsCount = 3; radioButtons = new RadioButton[radioButtonsCount]; // Erzeugt ein Array von Radiobuttons.
SuspendLayout();
groupBox = new GroupBox();
// Diese for Schleife initialisiert die einzelnen Radiobuttons des Arrays und fügt sie dem GroupBox hinzu. for (int i = 0; i < radioButtonsCount; i++) { RadioButton newRadioButton = new RadioButton(); newRadioButton.Location = new System.Drawing.Point(50, 25 * i + 50); newRadioButton.Width = 200; newRadioButton.Click += new EventHandler(NewRadioButton_Clicked); // Verknüpft das Klick-Ereignis mit der gemeinsamen Ereignisbehandlungsmethode. groupBox.Controls.Add(newRadioButton); radioButtons[i] = newRadioButton; } radioButtons[0].Text = "Normal"; radioButtons[1].Text = "Erweitert"; radioButtons[2].Text = "Regulärer Ausdruck";
groupBox.Size = new System.Drawing.Size(Width, 150); groupBox.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; Controls.Add(groupBox);
outputTextBox = new TextBox(); outputTextBox.Location = new System.Drawing.Point(50, 25 * radioButtonsCount + 100); outputTextBox.Size = new System.Drawing.Size(200, 50); outputTextBox.Multiline = true; // Legt fest, dass das Textfeld mehrere Zeilen haben kann und Zeilenumbrüche ermöglicht. Controls.Add(outputTextBox);
Text = "Suchen und Ersetzen"; // Setzt die Beschriftung des Hauptfensters.
ResumeLayout(false); PerformLayout(); }
// Diese Methode wird aufgerufen, wenn der Benutzer auf einen Radiobutton klickt. private void NewRadioButton_Clicked(object sender, System.EventArgs e) { // Setzt den Text in der Textbox auf die Beschriftung des ausgewählten Radiobuttons. RadioButton radioButton = (RadioButton) sender; // Typumwandlung der Variable sender vom Typ object in den abgeleiteten Typ RadioButton outputTextBox.Text = radioButton.Text; } } </syntaxhighlight>
Weblinks[Bearbeiten]
Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.
- Apple Human Interface Guidelines über Radiobuttons. developer.apple.com (englisch).
- klassische Apps und UWP Apps. Microsoft Design Guidelines über Radiobuttons (englisch).
Einzelnachweise[Bearbeiten]
<references />