Lists
Dieser Abschnitt beschreibt gemeinsame Funktionen aller Listenkomponenten und ist keine Klasse, die instanziiert oder direkt verwendet werden kann.
Es stehen drei Arten von Listen zur Verwendung innerhalb Ihrer Apps zur Verfügung: ListBox, ChoiceBox und ComboBox. Diese Komponenten zeigen alle eine Liste von Schlüssel-Wert-Elementen an und bieten Methoden zum Hinzufügen, Entfernen, Auswählen und Verwalten der Elemente innerhalb der Liste.
Diese Seite skizziert die gemeinsamen Funktionen und das Verhalten aller Listenkomponenten, während spezifische Details für jede von ihnen in den jeweiligen Seiten behandelt werden.
Verwendung von ListItem
Listenkomponenten bestehen aus ListItem-Objekten, die einzelne Elemente innerhalb einer Liste repräsentieren. Jedes ListItem ist mit einem eindeutigen Schlüssel und einem Anzeigetext verbunden. Wichtige Merkmale der ListItem-Klasse sind:
- Ein
ListItemkapselt einen eindeutigen SchlüsselObjectund einen TextString, der innerhalb der Listenkomponente angezeigt wird. - Sie können ein
ListItemerstellen, indem Sie einen Schlüssel und einen Text angeben oder nur den Text angeben, sodass ein zufälliger Schlüssel generiert wird.
Verwaltung von ListItem-Objekten mit der API
Die verschiedenen Listenkomponenten bieten mehrere Methoden zur Verwaltung der Liste von Elementen und zur Aufrechterhaltung eines konsistenten Zustands zwischen der Liste und dem Client. Durch die Verwendung dieser Methoden können Sie die Elemente innerhalb der Liste effektiv verwalten. Die API erlaubt es Ihnen, mit der Liste zu interagieren und sie zu manipulieren, um die Anforderungen Ihrer App zu erfüllen.
Hinzufügen von Elementen
-
Ein Element hinzufügen:
- Um ein
ListItemzur Liste hinzuzufügen, können Sie dieadd(ListItem item)-Methode verwenden. - Sie können auch ein neues
ListItemhinzufügen, indem Sie den Schlüssel und den Text mit deradd(Object key, String text)- oderadd(String text)-Methode angeben.
- Um ein
-
Ein Element an einem bestimmten Index einfügen:
- Um ein Element an einem bestimmten Index einzufügen, verwenden Sie die
insert(int index, ListItem item)-Methode. - Sie können ein Element mit Schlüssel und Text mit der
insert(int index, Object key, String text)- oderinsert(int index, String text)-Methode einfügen.
- Um ein Element an einem bestimmten Index einzufügen, verwenden Sie die
-
Mehrere Elemente einfügen:
- Sie können mehrere Elemente an einem bestimmten Index mit der
insert(int index, List< ListItem > items)-Methode einfügen.
- Sie können mehrere Elemente an einem bestimmten Index mit der
Um die Leistung zu optimieren, ist es effizienter, anstatt bei jedem Gebrauch der add()-Methode eine Server-zu-Client-Nachricht auszulösen, zunächst eine Liste von ListItem-Objekten zu erstellen. Haben Sie diese Liste erstellt, können Sie sie alle auf einmal mit der insert(int index, List<ListItem> items)-Methode hinzufügen. Dieser Ansatz reduziert die Kommunikation zwischen Server und Client und verbessert die Gesamtleistung. Für detaillierte Richtlinien zu diesem und anderen bewährten Verfahren in der webforJ-Architektur siehe Client/Server-Interaktion.
Entfernen von Elementen
-
Ein Element entfernen:
- Um ein Element aus der Liste zu entfernen, verwenden Sie die
remove(int index)- oderremove(Object key)-Methode.
- Um ein Element aus der Liste zu entfernen, verwenden Sie die
-
Alle Elemente entfernen:
- Sie können alle Elemente aus der Liste mit
removeAll()entfernen.
- Sie können alle Elemente aus der Liste mit
Auswählen von Elementen
Alle Listentypen implementieren das SelectableList-Interface. Dieses Interface ermöglicht mehrere verschiedene Methoden zur Auswahl des aktuellen ListItem.
Mit einem bestimmten ListItem
select(ListItem item) akzeptiert ein ListItem als Parameter zur Auswahl.
List demoList = new List();
ListItem demoItem = new ListItem("demo","Demo-Element");
demoList.add(demoItem);
demoList.select(demoItem);
Mit einem bestimmten Schlüssel eines ListItem
selectKey(Object key) akzeptiert einen Schlüssel zu einem ListItem als Parameter zur Auswahl.
List demoList = new List();
demoList.add("demo","Demo-Element");
demoList.selectKey("demo");
Mit einem bestimmten Index eines ListItem
selectIndex(int index) akzeptiert einen Index zu einem ListItem als Parameter zur Auswahl.
List demoList = new List();
demoList.add("demo","Demo-Element");
demoList.selectKey(0);
Andere Listenoperationen
-
Zugriff und Aktualisierung von Elementen:
- Um auf Elemente nach Schlüssel oder Index zuzugreifen, verwenden Sie
getByKey(Object key)odergetByIndex(int index). - Sie können den Text eines Elements mit der
setText(String text)-Methode innerhalb derListItem-Klasse aktualisieren.
- Um auf Elemente nach Schlüssel oder Index zuzugreifen, verwenden Sie
-
Informationen über die Liste abrufen:
Durchlisten von Listen
Alle Listenkomponenten implementieren das Java Iteratable-Interface, das eine effiziente und intuitive Möglichkeit bietet, durch den Inhalt einer Liste zu iterieren. Mit diesem Interface können Sie einfach durch jedes ListItem schleifen, was es einfach macht, auf jedes Element zuzugreifen, es zu ändern oder Aktionen mit minimalem Aufwand durchzuführen. Das Iterable-Interface ist ein Standardmuster der Java-Sprache, das sicherstellt, dass Ihr Code für jeden Java-Entwickler vertraut und wartbar ist.
Der folgende Codeausschnitt demonstriert zwei einfache Möglichkeiten, durch eine Liste zu iterieren:
list.forEach(item -> {
item.setText("Modifiziert: " + item.getText());
});
for (ListItem item : list) {
item.setText("Modifiziert2: " + item.getText());
}
Gemeinsame Listenmerkmale
Label
Alle Listenkomponenten können ein Label zugewiesen bekommen, das ein beschreibender Text oder Titel ist, der mit der Komponente verbunden ist. Labels bieten eine kurze Erklärung oder Aufforderung, um den Benutzern zu helfen, den Zweck oder die erwartete Auswahl für diese spezielle Liste zu verstehen. Neben ihrer Bedeutung für die Benutzerfreundlichkeit spielen Listenlabels auch eine wichtige Rolle in der Barrierefreiheit, da sie Screenreadern und Hilfstechnologien ermöglichen, genaue Informationen bereitzustellen und die Tastaturnavigation zu erleichtern.
Hilfetext
Jede Listenkomponente kann Hilfetext unter der Liste mit der Methode setHelperText() anzeigen. Dieser Hilfetext bietet zusätzlichen Kontext oder Erklärungen zu den verfügbaren Optionen und stellt sicher, dass die Benutzer die notwendigen Informationen haben, um informierte Auswahlen zu treffen.
Horizontale Ausrichtung
Alle Listenkomponenten implementieren das HasHorizontalAlignment-Interface, das Ihnen die Kontrolle über die Ausrichtung von Text und Inhalt innerhalb der Komponente gibt.
Verwenden Sie die Methode setHorizontalAlignment(), um die Ausrichtung festzulegen:
HorizontalAlignment.LEFT(Standard)HorizontalAlignment.MIDDLEHorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);
Um die aktuelle Ausrichtung abzurufen:
HorizontalAlignment alignment = listBox.getHorizontalAlignment();
Expanses
Alle Listenkomponenten in webforJ implementieren auch das HasExpanse-Interface, das es Ihnen ermöglicht, die Gesamtgröße und das visuelle Gewicht der Komponente anzupassen. Dies ist nützlich, um die Komponente an verschiedene UI-Kontexte anzupassen, wie z. B. Formulare, Dialoge, Seitenleisten usw.
Verwenden Sie die Methode setExpanse(), um die Expansestufe festzulegen. Optionen sind:
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(Standard)Expanse.LARGEExpanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);
Sie können die aktuelle Einstellung mit folgendem Befehl abrufen:
Expanse current = listBox.getExpanse();
Themen
ChoiceBox
Pick a single value from a fixed set with the ChoiceBox dropdown, including dropdown type styling, max row count, and keyboard navigation.
ComboBox
Combine a dropdown list with a text input in the ComboBox to let users select preset items or type custom values with placeholder support.
ListBox
Show a scrollable, always-visible list with the ListBox component, supporting single or multiple selection and keyboard navigation.