Listen
Dieser Abschnitt beschreibt die gemeinsamen Funktionen aller Listenkomponenten und ist keine Klasse, die instanziiert oder direkt verwendet werden kann.
Es stehen drei Typen von Listen zur Verwendung in Ihren 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 geteilten Merkmale und das Verhalten aller Listenkomponenten, während spezifische Details für jede Komponente in ihren 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 einzigartigen Schlüssel und einem Anzeigetext verbunden. Wichtige Merkmale der ListItem-Klasse umfassen:
- Ein
ListItemkapselt einen einzigartigen SchlüsselObjectund einen TextString, der innerhalb der Listenkomponente angezeigt wird. - Sie können ein
ListItemerstellen, indem Sie einen Schlüssel und Text angeben oder indem Sie nur den Text angeben, sodass ein zufälliger Schlüssel generiert wird.
Verwalten von ListItem-Objekten mit der API
Die verschiedenen Listenkomponenten bieten mehrere Methoden zum Verwalten der Liste von Elementen und zur Beibehaltung 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 ermöglicht es Ihnen, mit der Liste zu interagieren und diese so zu manipulieren, dass sie den Anforderungen Ihrer App entspricht.
Hinzufügen von Elementen
-
Hinzufügen eines Elements:
- 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 über dieadd(Object key, String text)- oderadd(String text)-Methode angeben.
- Um ein
-
Einfügen eines Elements an einem bestimmten Index:
- 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 einfügen, indem Sie die
insert(int index, Object key, String text)- oderinsert(int index, String text)-Methode verwenden.
- 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 mithilfe der
insert(int index, List< ListItem > items)-Methode einfügen.
- Sie können mehrere Elemente an einem bestimmten Index mithilfe der
Um die Leistung zu optimieren, ist es effizienter, eine Liste von ListItem-Objekten zuerst zu erstellen, anstatt bei jedem Aufruf der add()-Methode eine Server-zu-Client-Nachricht auszulösen. Sobald Sie diese Liste haben, können Sie sie alle auf einmal mit der Methode insert(int index, List<ListItem> items) hinzufügen. Dieser Ansatz reduziert die Kommunikation zwischen Server und Client und verbessert die Gesamteffizienz. Für detaillierte Richtlinien zu diesem und anderen Best Practices in der webforJ-Architektur verweisen Sie bitte auf 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 die SelectableList-Schnittstelle. Diese Schnittstelle ermöglicht verschiedene Möglichkeiten zur Auswahl des aktuellen ListItem.
Mit einem gegebenen ListItem
select(ListItem item) benötigt ein ListItem als Parameter zur Auswahl.
List demoList = new List();
ListItem demoItem = new ListItem("demo","Demo Item");
demoList.add(demoItem);
demoList.select(demoItem);
Mit einem gegebenen Schlüssel eines ListItem
selectKey(Object key) benötigt einen Schlüssel zu einem ListItem als Parameter zur Auswahl.
List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey("demo");
Mit einem gegebenen Index eines ListItem
selectIndex(int index) benötigt einen Index zu einem ListItem als Parameter zur Auswahl.
List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey(0);
Andere Listenoperationen
-
Zugriff und Aktualisierung von Elementen:
- Um auf Elemente anhand von Schlüssel oder Index zuzugreifen, verwenden Sie
getByKey(Object key)odergetByIndex(int index). - Sie können den Text eines Elements mithilfe der
setText(String text)-Methode innerhalb derListItem-Klasse aktualisieren.
- Um auf Elemente anhand von Schlüssel oder Index zuzugreifen, verwenden Sie
-
Abrufen von Informationen über die Liste:
Über Listen iterieren
Alle Listenkomponenten implementieren die Java Iteratable-Schnittstelle, die einen effizienten und intuitiven Weg bietet, durch den Inhalt einer Liste zu iterieren. Mit dieser Schnittstelle können Sie mühelos durch jedes ListItem schleifen und jedes Element mit minimalem Aufwand zugreifen, ändern oder Aktionen durchführen. Die Iterable-Schnittstelle ist ein standardmäßiges Muster der Programmiersprache Java, das sicherstellt, dass Ihr Code vertraut und wartbar für jeden Java-Entwickler ist.
Der folgende Code zeigt zwei einfache Möglichkeiten, um durch eine Liste zu iterieren:
list.forEach(item -> {
item.setText("Modifiziert: " + item.getText());
});
for (ListItem item : list) {
item.setText("Modifiziert2: " + item.getText());
}
Suchen 26.02
Alle Listenkomponenten verfügen über ein eingebettetes Suchfeld, das die Elemente anhand ihres Textes filtert. Das Feld ist standardmäßig deaktiviert. Verwenden Sie getSearch(), um auf die Suchkonfiguration zuzugreifen, und dann setFieldVisible(true), um das Feld oben in der Liste der Komponente anzuzeigen.
ComboBox comboBox = new ComboBox("Frucht");
comboBox.insert("Apfel", "Banane", "Kirsche", "Aprikose", "Ananas");
comboBox.getSearch()
.setFieldVisible(true)
.setPlaceholder("Früchte suchen")
.setEmptyMessage("Keine Früchte gefunden");
Code anzeigen
- ListSearchView.java
Das Filtern blendet nur die Elemente aus, die nicht übereinstimmen. Die Elementeindizes und die aktuelle Auswahl bleiben unberührt, sodass getSelectedIndex() weiterhin auf die vollständige Liste verweist und nicht auf die aktuell sichtbaren Elemente.
Das Suchfeld kann wieder mit setFieldVisible(false) ausgeblendet werden.
Konfigurieren des Feldes
-
setPlaceholder()legt den Platzhaltertext des Suchfelds fest. Der Standardwert istSuchen. -
setEmptyMessage()legt die Nachricht fest, die angezeigt wird, wenn eine Suche keine Ergebnisse zurückgibt. Der Standardwert istKeine Daten zum Anzeigen.
Jede Einstellung hat einen passenden Getter: isFieldVisible(), getPlaceholder(), getEmptyMessage(), und getTerm().
Filtern aus dem Code heraus
setTerm() legt den Suchbegriff fest und filtert die Liste. Es funktioniert unabhängig davon, ob das Feld sichtbar ist oder nicht, sodass eine Liste gefiltert werden kann, ohne dass eine Suchoberfläche angezeigt wird.
listBox.getSearch().setTerm("apfel");
getTerm() und das SuchfeldDas Tippen in das Suchfeld schreibt den Begriff nicht in die Konfiguration zurück. getTerm() gibt den letzten Wert zurück, der an setTerm() übergeben wurde, und nicht das, was der Benutzer eingegeben hat.
Gemeinsame Listenproperties
Etikett
Alle Listenkomponenten können ein Etikett zugewiesen werden, das ein beschreibender Text oder Titel ist, der mit der Komponente verbunden ist. Etiketten bieten eine kurze Erklärung oder Aufforderung, um den Benutzern zu helfen, den Zweck oder die erwartete Auswahl für diese bestimmte Liste zu verstehen. Neben ihrer Wichtigkeit für die Benutzerfreundlichkeit spielen Listenetiketten auch eine entscheidende Rolle in der Barrierefreiheit, da sie Bildschirmlesegeräten und unterstützenden Technologien ermöglichen, genaue Informationen bereitzustellen und die Tastaturnavigation zu erleichtern.
Hilfetext
Jede Listenkomponente kann einen 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 Entscheidungen zu treffen.
Horizontale Ausrichtung
Alle Listenkomponenten implementieren die HasHorizontalAlignment-Schnittstelle, die Ihnen die Kontrolle darüber gibt, wie Text und Inhalte innerhalb der Komponente ausgerichtet sind.
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 zu erhalten:
HorizontalAlignment alignment = listBox.getHorizontalAlignment();
Expanses
Alle Listenkomponenten in webforJ implementieren auch die HasExpanse-Schnittstelle, die 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 Formulare, Dialoge, Seitenleisten usw.
Verwenden Sie die Methode setExpanse(), um die Expansionsstufe 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 folgender Methode 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.