Passer au contenu principal

Lists

Ouvrir dans ChatGPT
info

Cette section décrit les fonctionnalités communes de tous les composants de liste, et ce n'est pas une classe qui peut être instanciée ou utilisée directement.

Il existe trois types de listes disponibles pour 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 les détails spécifiques pour chacun sont couverts 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 fonctionnalités importantes de la classe ListItem comprennent :

  • Un ListItem encapsule une clé unique Object et un texte String à afficher dans le composant de liste.
  • Vous pouvez construire un ListItem en fournissant une clé et un texte, ou en spécifiant seulement 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 au sein de la liste. L'API vous permet d'interagir avec et de manipuler la liste pour répondre aux exigences de votre application.

Ajout d'éléments

conseil

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 les ajouter tous en une seule fois en utilisant la méthode insert(int index, List<ListItem> items). Cette approche réduit la communication serveur-client, améliorant l'efficacité globale. Pour des directives détaillées sur cela et d'autres meilleures pratiques dans l'architecture webforJ, reportez-vous à Client/Server Interaction.

Suppression d'éléments

  • Supprimer un élément :

  • Supprimer tous les éléments :

    • Vous pouvez supprimer tous les éléments de la liste en utilisant removeAll().

Sélection d'éléments

Tous les types de liste implémentent l'interface SelectableList. Cette interface permet plusieurs manières différentes 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","Demo Item");
demoList.add(demoItem);
demoList.select(demoItem);

Avec une clé donnée d'un ListItem

selectKey(Object key) prend une clé d'un ListItem comme paramètre à sélectionner.

List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey("demo");

Avec un index donné d'un ListItem

selectIndex(int index) prend un index d'un ListItem comme paramètre à sélectionner.

List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey(0);

Autres opérations sur les listes

  • Accéder et mettre à jour des éléments :

  • Récupérer des informations sur la liste :

    • Vous pouvez obtenir la taille de la liste en utilisant la méthode size().
    • Pour vérifier si la liste est vide, utilisez la méthode isEmpty().

Itération sur les 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 boucler à travers chaque ListItem, ce qui simplifie 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.

L'extrait de code ci-dessous démontre deux façons 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());
}

Propriétés partagées des listes

Étiquette

Tous les composants de liste peuvent recevoir une étiquette, qui est un texte descriptif ou un titre associé au composant. Les étiquettes fournissent une brève explication ou un indice 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 étiquettes des listes jouent également un rôle crucial en matière d'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 en 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 disposent des informations nécessaires pour faire 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.MIDDLE
  • HorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);

Pour obtenir l'alignement actuel :

HorizontalAlignment alignment = listBox.getHorizontalAlignment();

Étendues

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 des formulaires, des dialogues, des barres latérales, etc.

Utilisez la méthode setExpanse() pour définir le niveau d'expansion. Les options incluent :

  • Expanse.NONE
  • Expanse.XSMALL
  • Expanse.SMALL
  • Expanse.MEDIUM (par défaut)
  • Expanse.LARGE
  • Expanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);

Vous pouvez récupérer le paramètre actuel avec :

Expanse current = listBox.getExpanse();

Thèmes