Dialog (Benutzeroberfläche)
Ein Dialog, Dialogfeld, Dialogfenster oder Dialogbox ist ein Element der grafischen Benutzeroberfläche.
Verwendung
Dialoge werden eingeblendet, um Eingaben vom Benutzer einzuholen, beispielsweise:
- Bei der Software-Installation wird der Anwender gefragt, ob die Installation nach den Standardvorgaben ablaufen soll oder ob der Anwender die zu installierenden Module und Zielverzeichnisse vorgeben möchte.
- Bei einem Druckauftrag kann der Anwender angeben, welcher Drucker verwendet werden soll, wie viele Kopien er erhalten möchte und ob nur bestimmte Seiten zu drucken sind.
Eigenschaften von Dialogfenstern
In der Regel sind Dialogfenster formularartig aufgebaut. Dazu werden Steuerelemente wie Textfelder und Kontrollkästchen verwendet. Meistens am unteren Rand enthalten sie Schaltflächen wie OK oder Abbrechen, mit denen der Benutzer seine Eingaben bestätigen oder verwerfen und den Dialog schließen kann. Einfache Dialogfenster, sogenannte Meldungen, enthalten lediglich einen Frage- oder Hinweistext und eine oder mehrere Schaltflächen, etwa Ja und Nein zum Beantworten einer Frage.
Enthält ein Dialogfenster mehrere solcher Eingabeelemente wie Textfelder oder Schaltflächen, ist nur immer eines von ihnen zu einem bestimmten Zeitpunkt aktiv. Durch Anklicken mit der Maus kann man ein anderes Feld aktivieren. Für Benutzeroberflächen, die sich ohne Maus, d. h. nur mit der Tastatur bedienen lassen (wie etwa Windows) gilt: Wenn man auf der Tastatur die Tabulatortaste drückt, wird nach einer programmierten Reihenfolge das nächste Eingabeelement innerhalb des Fensters aktiviert.[1] Zusammen mit der Umschalttaste (Shift) kann man diese Reihenfolge rückwärts durchlaufen. Drückt man dagegen den Zeilenschalter (Return) oder die Eingabetaste (Enter), wird die gerade aktive Schaltfläche als betätigt oder eine Texteingabe als abgeschlossen erkannt und das Dialogfenster geschlossen.
Modale und nichtmodale Dialoge
Modale Dialoge sperren den Rest der Anwendung (oder sogar der Benutzeroberfläche), solange der Dialog angezeigt wird.
Nichtmodale Dialoge erlauben auch Eingaben in der Applikation außerhalb des Dialogs.
Standard-Dialoge
Dialoge werden vom Programmierer heute meist mit grafischen Editoren (GUI-Designer) erzeugt, wie sie beispielsweise in Microsoft Visual Studio, Apple Xcode oder NetBeans integriert sind. In der Regel werden vom jeweiligen GUI-Toolkit Standard-Dialoge angeboten, die durch einen einfachen Funktionsaufruf verwendet werden können. Dies hat für den Benutzer den Vorteil, dass er auch in unterschiedlichen Anwendungen vertraute Dialogfenster vorfindet, beispielsweise:
- Meldungen mit Text und verschiedenen Kombinationen von Schaltflächen,
- Dateiauswahldialoge, mit denen der Benutzer eine oder mehrere Dateien oder ein Verzeichnis auswählen kann,
- Farbauswahldialog, mit dem der Benutzer eine Farbe aus einer Palette auswählen oder selbst definieren kann.
Programmierung
C#
Das folgende Beispiel in der Programmiersprache C# zeigt die Implementierung eines Hauptfensters mit drei Buttons. Das Klick-Ereignis der Buttons jeweils mit einer Ereignisbehandlungsroutine verknüpft, die einen Dialog öffnet (siehe Ereignis).[2][3][4]
using System.Windows.Forms;
public class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Button newButton;
private System.Windows.Forms.Button openButton;
private System.Windows.Forms.Button saveButton;
// Konstruktor des MainForms.
public MainForm()
{
InitializeButtons();
}
// Startet die Anwendung und erzeugt das MainForm durch Aufruf des Konstruktors.
public static void Main()
{
Application.Run(new MainForm());
}
// Initialisiert die Buttons.
private void InitializeButtons()
{
// Erzeugt 3 Buttons auf dem Hauptfenster.
newButton = new Button();
newButton.Location = new System.Drawing.Point(50, 50);
newButton.Text = "New";
Controls.Add(newButton);
openButton = new Button();
openButton.Location = new System.Drawing.Point(50, 100);
openButton.Text = "Open";
Controls.Add(openButton);
saveButton = new Button();
saveButton.Location = new System.Drawing.Point(50, 150);
saveButton.Text = "Save";
Controls.Add(saveButton);
SuspendLayout();
Text = "Dialogs example"; // Setzt die Beschriftung des Hauptfensters.
ResumeLayout(false);
PerformLayout();
// Verknüpft die Ereignisbehandlungsmethoden jeweils mit dem Klick-Ereignis der Buttons.
newButton.Click += new System.EventHandler(NewButton_Clicked);
openButton.Click += new System.EventHandler(OpenButton_Clicked);
saveButton.Click += new System.EventHandler(SaveButton_Clicked);
}
// Diese Methode wird aufgerufen, wenn der Benutzer auf den Button "New" klickt.
private void NewButton_Clicked(object sender, System.EventArgs e)
{
Form newForm = new Form(); // Erzeugt ein neues Fenster durch Aufruf des Standardkonstruktors.
newForm.ShowDialog(); // Zeigt das Fenster als modaler Dialog an.
}
// Diese Methode wird aufgerufen, wenn der Benutzer auf den Button "Open" klickt.
private void OpenButton_Clicked(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog(); // Erzeugt einen neuen Dateidialog durch Aufruf des Standardkonstruktors.
openFileDialog.Multiselect = false; // Legt fest, dass nur eine Datei geöffnet werden kann.
openFileDialog.Filter = "XML (*.xml)|*.xml"; // Legt fest, dass nur XML Dateien zur Auswahl stehen und geöffnet werden können.
openFileDialog.ShowDialog();
}
// Diese Methode wird aufgerufen, wenn der Benutzer auf den Button "Save" klickt.
private void SaveButton_Clicked(object sender, System.EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog(); // Erzeugt einen neuen Dateidialog durch Aufruf des Standardkonstruktors.
saveFileDialog.Filter = "XML (*.xml)|*.xml"; // Legt fest, dass nur XML Dateien gespeichert werden können.
saveFileDialog.ShowDialog();
}
}
Literatur
- Charles Petzold: Windows Programmierung. Microsoft Press Deutschland, Unterschleißheim 2000, ISBN 3-86063-487-9.
Weblinks
Einzelnachweise
- Tab-Taste | Funktion der Tabulator-Taste am PC. Abgerufen am 12. November 2020 (deutsch).
- Microsoft Docs: Form Class
- Microsoft Docs: OpenFileDialog Class
- Microsoft Docs: SaveFileDialog Class