Baum (Steuerelement)
Ein Baum, verdeutlichend auch Baumansicht (engl.: Tree view oder treeview) oder eine hierarchische Liste,[1] ist ein Steuerelement einer grafischen Benutzeroberfläche, das eine hierarchisch gegliederte Liste darstellt und Auswahl daraus ermöglicht. Der Baum besteht dabei aus mehreren ineinander geschachtelten Knoten, welche wahlweise mit einem Mausklick auf das davor eingeblendete Symbol (meist ein Pluszeichen bzw. Minuszeichen oder ein Dreieck) aufgeklappt oder zugeklappt werden können.
Darstellung
[Bearbeiten | Quelltext bearbeiten ]Dargestellt wird der Baum in der Regel mit der Wurzel in der oberen linken Ecke. Die Verbindungslinien zwischen den Knoten können dabei gezeichnet oder ausgelassen werden. Werden diese nicht dargestellt, ist die hierarchische Struktur nur durch die eingerückte Darstellung der Knoten erkennbar. Ein weiteres Unterscheidungsmerkmal ist die Darstellung der Blätter, welche im Baum integriert werden oder aber auf einer Detailseite z. B. in Form einer Liste dargestellt werden können.
Eine Alternativform eines Baums ist die Kombination mit einer Textbox. Je nach Inhalt dieser Textbox werden im Baum nur die Knoten und Blätter angezeigt, welche das eingegebene Suchwort in irgendeiner Form enthalten. Solche Bäume werden unter anderem in der integrierten Entwicklungsumgebung Eclipse eingesetzt.
Verwendung
[Bearbeiten | Quelltext bearbeiten ]Bäume werden oft eingesetzt, um hierarchisch verschachtelte Strukturen darzustellen. Die hierarchische Verzeichnisstruktur eines Computers etwa wird oft als Baum dargestellt. Bekannte Anwendungsbeispiele sind die Ordnerstruktur im Windows-Explorer oder der Dateimanager Xtree unter DOS.
Auch die Liste der Einstellungen einer Software wird oft als Baum dargestellt, um sie übersichtlicher zu machen.
Die meisten integrierten Entwicklungsumgebungen können die Struktur eines Softwareprojektes – vom ganzen Projekt bis hinunter zu Abschnitten in einzelnen Dateien – als Baum darstellen.
ISO 9241-161 schreibt vor, dass ein Baum so gestaltet sein muss, dass die hierarchische Position eines Knoten und der Daten angegeben wird. Ferner empfiehlt die Norm eine Ordnung der Daten auf „geeignete Weise".[2]
Programmierung
[Bearbeiten | Quelltext bearbeiten ]C#
[Bearbeiten | Quelltext bearbeiten ]Das folgende Beispiel in der Programmiersprache C# zeigt die Implementierung eines Hauptfensters mit einem TreeView und einem Button für verschiedene Länder und Kontinente. Das Klick-Ereignis des Buttons ist mit einer Ereignisbehandlungsroutine verknüpft, die ein Fenster öffnet (siehe Ereignis).[3]
usingSystem.Windows.Forms; publicclassMainForm:System.Windows.Forms.Form { privateSystem.Windows.Forms.TreeViewworldTreeView; privateSystem.Windows.Forms.ButtondetailsButton; // Konstruktor des MainForms. publicMainForm() { InitializeWorldTreeViewAndButton(); } // Startet die Anwendung und erzeugt das MainForm durch Aufruf des Konstruktors. publicstaticvoidMain() { Application.Run(newMainForm()); } // Initialisiert das TreeView und den Button. privatevoidInitializeWorldTreeViewAndButton() { // Erzeugt ein TreeView für verschiedene Länder und Kontinente und einen Button auf dem Hauptfenster. worldTreeView=newTreeView(); detailsButton=newButton(); SuspendLayout(); worldTreeView.SuspendLayout(); worldTreeView.Location=newSystem.Drawing.Point(50,50); worldTreeView.Nodes.Add("World","Welt");// Fügt den obersten Knoten hinzu TreeNodeCollectionworldTreeNodeCollection=worldTreeView.Nodes[0].Nodes;// Die Sammlung der Nachfolgerknoten des obersten Knotens // Fügt dieser Sammlung 3 Knoten hinzu worldTreeNodeCollection.Add("Europe","Europa"); worldTreeNodeCollection.Add("America","Amerika"); worldTreeNodeCollection.Add("Asia","Asien"); TreeNodeCollectioneuropeTreeNodeCollection=worldTreeNodeCollection[0].Nodes;// Die Sammlung der Nachfolgerknoten des Europa Knotens // Fügt dieser Sammlung 3 Knoten hinzu europeTreeNodeCollection.Add("Germany","Deutschland"); europeTreeNodeCollection.Add("France","Frankreich"); europeTreeNodeCollection.Add("Britain","Britannien"); TreeNodeCollectionamericaTreeNodeCollection=worldTreeNodeCollection[1].Nodes;// Die Sammlung der Nachfolgerknoten des Amerika Knotens // Fügt dieser Sammlung 1 Knoten hinzu americaTreeNodeCollection.Add("United States","Vereinigte Staaten"); Controls.Add(worldTreeView); detailsButton.Location=newSystem.Drawing.Point(50,150); detailsButton.Text="Details"; Controls.Add(detailsButton); worldTreeView.ResumeLayout(false); worldTreeView.PerformLayout(); Text="Dialogs example";// Setzt die Beschriftung des Hauptfensters. ResumeLayout(false); PerformLayout(); detailsButton.Click+=newSystem.EventHandler(NewButton_Clicked); } // Diese Methode wird aufgerufen, wenn der Benutzer auf den Button "Details" klickt. privatevoidNewButton_Clicked(objectsender,System.EventArgse) { FormnewForm=newForm();// Erzeugt ein neues Fenster durch Aufruf des Standardkonstruktors. newForm.Text=worldTreeView.SelectedNode.Text;// Setzt die Beschriftung des Fensters gleich der Beschriftung des ausgewählten Knotens des TreeView. newForm.ShowDialog();// Zeigt das Fenster als modaler Dialog an. } }
Siehe auch
[Bearbeiten | Quelltext bearbeiten ]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten ]- ↑ Bezeichnung nach ISO 9241-161, Nr. 8.17
- ↑ DIN EN ISO 9241-161, Nr. 8.17.5
- ↑ Microsoft Docs: TreeView Class