Listes
Cette section décrit les fonctionnalités communes de tous les composants de liste, et n'est pas une classe qui peut être instanciée ou utilisée directement.
Il existe trois types de listes disponibles pour une utilisation dans vos applications : ListBox, ChoiceBox et ComboBox. Ces composants affichent tous une liste d'éléments clé-valeur et fournissent des méthodes pour ajouter, supprimer, sélectionner et gérer les éléments dans la liste.
Cette page décrit les fonctionnalités et le comportement partagés de tous les composants de liste, tandis que des détails spécifiques pour chacun sont traités dans leurs pages respectives.
Utilisation de ListItem
Les composants de liste sont composés d'objets ListItem, qui représentent des éléments individuels dans une liste. Chaque ListItem est associé à une clé unique et à un texte d'affichage. Les caractéristiques importantes de la classe ListItem incluent :
- Un
ListItemencapsule une clé uniqueObjectet un texteStringà afficher dans le composant de liste. - Vous pouvez construire un
ListItemen fournissant une clé et un texte, ou en spécifiant uniquement le texte afin qu'une clé aléatoire soit générée.
Gestion des objets ListItem avec l'API
Les différents composants de liste offrent plusieurs méthodes pour gérer la liste des éléments et maintenir un état cohérent entre la liste et le client. En utilisant ces méthodes, vous pouvez gérer efficacement les éléments de la liste. L'API vous permet d'interagir et de manipuler la liste pour répondre aux exigences de votre application.
Ajout d'éléments
-
Ajouter un élément :
- Pour ajouter un
ListItemà la liste, vous pouvez utiliser la méthodeadd(ListItem item). - Vous pouvez également ajouter un nouveau
ListItemen spécifiant la clé et le texte à l'aide de la méthodeadd(Object key, String text)ouadd(String text).
- Pour ajouter un
-
Insérer un élément à un index spécifique :
- Pour insérer un élément à un index spécifique, utilisez la méthode
insert(int index, ListItem item). - Vous pouvez insérer un élément avec clé et texte en utilisant la méthode
insert(int index, Object key, String text)ouinsert(int index, String text).
- Pour insérer un élément à un index spécifique, utilisez la méthode
-
Insérer plusieurs éléments :
- Vous pouvez insérer plusieurs éléments à un index spécifié en utilisant la méthode
insert(int index, List< ListItem > items).
- Vous pouvez insérer plusieurs éléments à un index spécifié en utilisant la méthode
Pour optimiser les performances, au lieu de déclencher un message serveur-client à chaque fois que vous utilisez la méthode add(), il est plus efficace de créer d'abord une Liste d'objets ListItem. Une fois que vous avez cette liste, vous pouvez tous les ajouter à la fois en utilisant la méthode insert(int index, List<ListItem> items). Cette approche réduit la communication entre le serveur et le client, améliorant ainsi l'efficacité globale. Pour des instructions détaillées sur cela et d'autres bonnes pratiques dans l'architecture webforJ, consultez Interaction Client/Serveur.
Suppression d'éléments
-
Supprimer un élément :
- Pour supprimer un élément de la liste, utilisez la méthode
remove(int index)ouremove(Object key).
- Pour supprimer un élément de la liste, utilisez la méthode
-
Supprimer tous les éléments :
- Vous pouvez supprimer tous les éléments de la liste en utilisant
removeAll().
- Vous pouvez supprimer tous les éléments de la liste en utilisant
Sélectionner des éléments
Tous les types de listes implémentent l'interface SelectableList. Cette interface permet plusieurs manières de sélectionner le ListItem actuel.
Avec un ListItem donné
select(ListItem item) prend un ListItem comme paramètre à sélectionner.
List demoList = new List();
ListItem demoItem = new ListItem("demo","Élément Démo");
demoList.add(demoItem);
demoList.select(demoItem);
Avec une clé donnée d'un ListItem
selectKey(Object key) prend une clé vers un ListItem comme paramètre à sélectionner.
List demoList = new List();
demoList.add("demo","Élément Démo");
demoList.selectKey("demo");
Avec un index donné d'un ListItem
selectIndex(int index) prend un index vers un ListItem comme paramètre à sélectionner.
List demoList = new List();
demoList.add("demo","Élément Démo");
demoList.selectKey(0);
Autres opérations de liste
-
Accéder et mettre à jour des éléments :
- Pour accéder aux éléments par clé ou index, utilisez
getByKey(Object key)ougetByIndex(int index). - Vous pouvez mettre à jour le texte d'un élément en utilisant la méthode
setText(String text)dans la classeListItem.
- Pour accéder aux éléments par clé ou index, utilisez
-
Récupérer des informations sur la liste :
Itérer sur des listes
Tous les composants de liste implémentent l'interface Java Iteratable, offrant un moyen efficace et intuitif d'itérer à travers le contenu d'une liste. Avec cette interface, vous pouvez facilement parcourir chaque ListItem, facilitant l'accès, la modification ou l'exécution d'actions sur chaque élément avec un minimum d'effort. L'interface Iterable est un modèle standard du langage Java, garantissant que votre code est familier et maintenable pour tout développeur Java.
Le code ci-dessous démontre deux manières simples d'itérer à travers une liste :
list.forEach(item -> {
item.setText("Modifié : " + item.getText());
});
for (ListItem item : list) {
item.setText("Modifié2 : " + item.getText());
}
Recherche 26.02
Tous les composants de liste ont un champ de recherche intégré qui filtre les éléments par leur texte. Le champ est désactivé par défaut. Utilisez getSearch() pour accéder à la configuration de recherche, puis setFieldVisible(true) pour afficher le champ en haut de la liste du composant.
ComboBox comboBox = new ComboBox("Fruit");
comboBox.insert("Pomme", "Banane", "Cerise", "Abricot", "Ananas");
comboBox.getSearch()
.setFieldVisible(true)
.setPlaceholder("Rechercher des fruits")
.setEmptyMessage("Aucun fruit trouvé");
Afficher le code
- ListSearchView.java
Le filtrage cache uniquement les éléments qui ne correspondent pas. Les index des éléments et la sélection actuelle restent intacts, donc getSelectedIndex() continue de faire référence à la liste complète plutôt qu'aux éléments actuellement visibles.
Le champ de recherche peut être caché à nouveau avec setFieldVisible(false).
Configuration du champ
-
setPlaceholder()définit le texte d'espace réservé du champ de recherche. La valeur par défaut estRechercher. -
setEmptyMessage()définit le message affiché lorsqu'une recherche ne retourne aucun résultat. La valeur par défaut estAucune donnée à afficher.
Chaque paramètre a un getter correspondant : isFieldVisible(), getPlaceholder(), getEmptyMessage(), et getTerm().
Filtrage depuis le code
setTerm() définit le terme de recherche et filtre la liste. Cela fonctionne que le champ soit visible ou non, donc une liste peut être filtrée sans afficher aucune interface de recherche.
listBox.getSearch().setTerm("pomme");
getTerm() et le champ de rechercheTapez dans le champ de recherche ne renvoie pas le terme à la configuration. getTerm() retourne la dernière valeur passée à setTerm(), et non ce que l'utilisateur a tapé.
Propriétés de liste partagées
Label
Tous les composants de liste peuvent être assignés un label, qui est un texte descriptif ou un titre associé au composant. Les labels fournissent une brève explication ou une invite pour aider les utilisateurs à comprendre l'objectif ou la sélection attendue pour cette liste particulière. En plus de leur importance pour l'utilisabilité, les labels de liste jouent également un rôle crucial dans l'accessibilité, permettant aux lecteurs d'écran et aux technologies d'assistance de fournir des informations précises et de faciliter la navigation au clavier.
Texte d'aide
Chaque composant de liste peut afficher un texte d'aide sous la liste utilisant la méthode setHelperText(). Ce texte d'aide offre un contexte ou des explications supplémentaires sur les options disponibles, garantissant que les utilisateurs ont les informations nécessaires pour effectuer des sélections éclairées.
Alignement horizontal
Tous les composants de liste implémentent l'interface HasHorizontalAlignment, vous permettant de contrôler comment le texte et le contenu sont alignés à l'intérieur du composant.
Utilisez la méthode setHorizontalAlignment() pour définir l'alignement :
HorizontalAlignment.LEFT(par défaut)HorizontalAlignment.MIDDLEHorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);
Pour obtenir l'alignement actuel :
HorizontalAlignment alignment = listBox.getHorizontalAlignment();
Expanses
Tous les composants de liste dans webforJ implémentent également l'interface HasExpanse, vous permettant d'ajuster la taille globale et le poids visuel du composant. Cela est utile pour adapter le composant à divers contextes d'interface utilisateur, tels que les formulaires, les boîtes de dialogue, les barres latérales, etc.
Utilisez la méthode setExpanse() pour définir le niveau d'expansion. Les options incluent :
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(par défaut)Expanse.LARGEExpanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);
Vous pouvez récupérer le paramètre actuel en utilisant :
Expanse current = listBox.getExpanse();
Thèmes
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.