Saltar al contenido principal

Lists

Abrir en ChatGPT
info

Esta sección describe las características comunes de todos los componentes de lista y no es una clase que puede ser instanciada o utilizada directamente.

Hay tres tipos de listas disponibles para su uso dentro de sus aplicaciones: ListBox, ChoiceBox y ComboBox. Estos componentes muestran una lista de elementos clave-valor y proporcionan métodos para agregar, eliminar, seleccionar y gestionar los elementos dentro de la lista.

Esta página describe las características y el comportamiento compartidos de todos los componentes de lista, mientras que los detalles específicos de cada uno se cubren en sus respectivas páginas.

Usando ListItem

Los componentes de lista están compuestos por objetos ListItem, que representan elementos individuales dentro de una lista. Cada ListItem está asociado con una clave única y un texto de visualización. Las características importantes de la clase ListItem incluyen:

  • Un ListItem encapsula una clave única Object y un texto String para mostrar dentro del componente de lista.
  • Puedes construir un ListItem proporcionando una clave y un texto, o especificando solo el texto para que se genere una clave aleatoria.

Gestionando objetos ListItem con la API

Los diversos componentes de lista ofrecen varios métodos para gestionar la lista de elementos y mantener un estado consistente entre la lista y el cliente. Al utilizar estos métodos, puedes gestionar eficazmente los elementos dentro de la lista. La API te permite interactuar y manipular la lista para satisfacer los requisitos de tu aplicación.

Agregando elementos

sugerencia

Para optimizar el rendimiento, en lugar de activar un mensaje de servidor a cliente cada vez que usas el método add(), es más eficiente crear primero una lista de objetos ListItem. Una vez que tengas esta lista, puedes agregarlos todos de una vez usando el método insert(int index, List<ListItem> items). Este enfoque reduce la comunicación entre el servidor y el cliente, mejorando la eficiencia general. Para obtener directrices detalladas sobre esto y otras mejores prácticas en la arquitectura de webforJ, consulta Interacción Cliente/Servidor.

Eliminando elementos

Seleccionando elementos

Todos los tipos de lista implementan la interfaz SelectableList. Esta interfaz permite múltiples maneras de seleccionar el ListItem actual.

Con un ListItem dado

select(ListItem item) toma un ListItem como parámetro para seleccionar.

List demoList = new List();
ListItem demoItem = new ListItem("demo","Elemento de Demo");
demoList.add(demoItem);
demoList.select(demoItem);

Con una clave dada de un ListItem

selectKey(Object key) toma una clave de un ListItem como parámetro para seleccionar.

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

Con un índice dado de un ListItem

selectIndex(int index) toma un índice de un ListItem como parámetro para seleccionar.

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

Otras operaciones de lista

  • Accediendo y actualizando elementos:

  • Recuperando información sobre la lista:

    • Puedes obtener el tamaño de la lista utilizando el size() método.
    • Para verificar si la lista está vacía, utiliza el isEmpty() método.

Iterando sobre listas

Todos los componentes de lista implementan la interfaz Java Iteratable, proporcionando una forma eficiente e intuitiva de iterar a través del contenido de una lista. Con esta interfaz, puedes recorrer fácilmente cada ListItem, haciéndolo simple para acceder, modificar o realizar acciones en cada elemento con mínimo esfuerzo. La interfaz Iterable es un patrón estándar del lenguaje Java, asegurando que tu código sea familiar y mantenible para cualquier desarrollador de Java.

El siguiente fragmento de código demuestra dos formas fáciles de iterar a través de una lista:

list.forEach(item -> {
item.setText("Modificado: " + item.getText());
});

for (ListItem item : list) {
item.setText("Modificado2: " + item.getText());
}

Propiedades compartidas de la lista

Etiqueta

Todos los componentes de lista pueden asignarse una etiqueta, que es un texto descriptivo o un título asociado con el componente. Las etiquetas proporcionan una breve explicación o indicación para ayudar a los usuarios a entender el propósito o la selección esperada para esa lista particular. Además de su importancia para la usabilidad, las etiquetas de lista también desempeñan un papel crucial en la accesibilidad, permitiendo que los lectores de pantalla y las tecnologías de asistencia proporcionen información precisa y faciliten la navegación por teclado.

Texto de ayuda

Cada componente de lista puede mostrar texto de ayuda debajo de la lista utilizando el método setHelperText(). Este texto de ayuda ofrece contexto adicional o explicaciones sobre las opciones disponibles, asegurando que los usuarios tengan la información necesaria para realizar selecciones informadas.

Alineación horizontal

Todos los componentes de lista implementan la interfaz HasHorizontalAlignment, otorgándote control sobre cómo se alinean el texto y el contenido dentro del componente.

Utiliza el método setHorizontalAlignment() para establecer la alineación:

  • HorizontalAlignment.LEFT (predeterminado)
  • HorizontalAlignment.MIDDLE
  • HorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);

Para obtener la alineación actual:

HorizontalAlignment alignment = listBox.getHorizontalAlignment();

Expansiones

Todos los componentes de lista en webforJ también implementan la interfaz HasExpanse, permitiéndote ajustar el tamaño general y el peso visual del componente. Esto es útil para adaptar el componente a varios contextos de UI, como formularios, cuadros de diálogo, barras laterales, etc.

Utiliza el método setExpanse() para establecer el nivel de expansión. Las opciones incluyen:

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

Puedes recuperar la configuración actual utilizando:

Expanse current = listBox.getExpanse();

Temas