TabbedPane
La clase TabbedPane
proporciona una forma compacta y organizada de mostrar contenido que está dividido en múltiples secciones, cada una asociada con un Tab
. Los usuarios pueden cambiar entre estas secciones al hacer clic en las pestañas respectivas, a menudo etiquetadas con texto y/o iconos. Esta clase simplifica la creación de interfaces multifacéticas donde diferentes contenidos o formularios necesitan ser accesibles, pero no visibles simultáneamente.
Usos
La clase TabbedPane
ofrece a los desarrolladores una herramienta poderosa para organizar y presentar múltiples pestañas o secciones dentro de una interfaz de usuario. Aquí hay algunos escenarios típicos donde podrías utilizar un TabbedPane
en tu aplicación:
-
Visor de Documentos: Implementar un visor de documentos donde cada pestaña representa un documento o archivo diferente. Los usuarios pueden cambiar fácilmente entre los documentos abiertos para realizar multitareas de manera eficiente.
-
Gestión de Datos:: Utiliza un
TabbedPane
para organizar tareas de gestión de datos, por ejemplo:- Diferentes conjuntos de datos que se mostrarán en una aplicación
- Varios perfiles de usuarios pueden ser mostrados dentro de pestañas separadas
- Diferentes perfiles en un sistema de gestión de usuarios
-
Selección de Módulos: Un
TabbedPane
puede representar diferentes módulos o secciones. Cada pestaña puede encapsular las funcionalidades de un módulo específico, permitiendo a los usuarios concentrarse en un aspecto de la aplicación a la vez. -
Gestión de Tareas: Las aplicaciones de gestión de tareas pueden utilizar un
TabbedPane
para representar varios proyectos o tareas. Cada pestaña podría corresponder a un proyecto específico, permitiendo a los usuarios gestionar y rastrear tareas por separado. -
Navegación en el Programa: Dentro de una aplicación que necesita ejecutar varios programas, un
TabbedPane
podría:- Servir como una barra lateral que permite que diferentes aplicaciones o programas se ejecuten dentro de una sola aplicación, como se muestra en la plantilla
AppLayout
- Crear una barra superior que puede servir para un propósito similar, o representar sub-aplicaciones dentro de una aplicación ya seleccionada.
- Servir como una barra lateral que permite que diferentes aplicaciones o programas se ejecuten dentro de una sola aplicación, como se muestra en la plantilla
Pestañas
Las pestañas son elementos de interfaz de usuario que se pueden agregar a paneles con pestañas para organizar y cambiar entre diferentes vistas de contenido.
Las pestañas no están destinadas a ser utilizadas como componentes independientes. Están destinadas a ser utilizadas en conjunción con paneles con pestañas. Esta clase no es un Componente
y no debe ser utilizada como tal.
Propiedades
Las pestañas están compuestas por las siguientes propiedades, que se utilizan al agregarlas en un TabbedPane
. Estas propiedades tienen métodos getters y setters para facilitar la personalización dentro de un TabbedPane
.
-
Key(
Objeto
): Representa el identificador único para elTab
. -
Text(
Cadena
): El texto que se mostrará como título para elTab
dentro delTabbedPane
. Esto también se conoce como el título a través de los métodosgetTitle()
ysetTitle(String title)
. -
Tooltip(
Cadena
): El texto emergente que está asociado con elTab
, que se mostrará cuando el cursor se desplace sobre elTab
. -
Enabled(
booleano
): Representa si elTab
está actualmente habilitado o no. Se puede modificar con el métodosetEnabled(boolean enabled)
. -
Closeable(
booleano
): Representa si elTab
se puede cerrar. Se puede modificar con el métodosetCloseable(boolean enabled)
. Esto añadirá un botón de cierre en elTab
que puede ser clickeado por el usuario, y dispara un evento de eliminación. El componenteTabbedPane
dicta cómo manejar la eliminación. -
Slot(
Componente
): Los slots proporcionan opciones flexibles para mejorar la capacidad de unTab
. Puedes tener iconos, etiquetas, indicadores de carga, capacidad de limpiar/restablecer, imágenes de avatar/perfil, y otros componentes beneficiosos anidados dentro de unTab
para aclarar aún más el significado intencionado a los usuarios. Puedes agregar un componente al slotprefix
de unTab
durante la construcción. Alternativamente, puedes usar los métodossetPrefixComponent()
ysetSuffixComponent()
para insertar varios componentes antes y después de la opción mostrada dentro de unTab
.TabbedPane pane = new TabbedPane();
pane.addTab(new Tab("Documentos", TablerIcon.create("files")));
Manipulación de Tab
Existen varios métodos que permiten a los desarrolladores agregar, insertar, eliminar y manipular varias propiedades de los elementos Tab
dentro del TabbedPane
.
Agregando un Tab
Los métodos addTab()
y add()
existen en diferentes capacidades sobrecargadas para permitir a los desarrolladores flexibilidad al agregar nuevas pestañas al TabbedPane
. Agregar un Tab
lo colocará después de cualquier pestaña existente previamente.
addTab(String text)
- Agrega unTab
alTabbedPane
con elString
especificado como el texto delTab
.addTab(Tab tab)
- Agrega elTab
proporcionado como parámetro alTabbedPane
.addTab(String text, Componente componente)
- Agrega unTab
con elString
dado como el texto delTab
, y elComponente
proporcionado mostrado en la sección de contenido delTabbedPane
.addTab(Tab tab, Componente componente)
- Agrega elTab
proporcionado y muestra elComponente
proporcionado en la sección de contenido delTabbedPane
.add(Componente... componente)
- Agrega una o más instancias deComponente
alTabbedPane
, creando unTab
discreto para cada uno, con el texto configurado al nombre delComponente
.
El método add(Componente... componente)
determina el nombre del Componente
pasado al llamar a component.getName()
en el argumento pasado.
Insertando un Tab
Además de agregar un Tab
al final de las pestañas existentes, también es posible crear uno nuevo en una posición designada. Para hacer esto, existen múltiples versiones sobrecargadas del método insertTab()
.
insertTab(int index, String text)
- Inserta unTab
en elTabbedPane
en el índice dado con elString
especificado como el texto delTab
.insertTab(int index, Tab tab)
- Inserta elTab
proporcionado como parámetro alTabbedPane
en el índice especificado.insertTab(int index, String text, Componente componente)
- Inserta unTab
con elString
dado como el texto delTab
, y elComponente
proporcionado mostrado en la sección de contenido delTabbedPane
.insertTab(int index, Tab tab, Componente componente)
- Inserta elTab
proporcionado y muestra elComponente
proporcionado en la sección de contenido delTabbedPane
.
Eliminando un Tab
Para eliminar un único Tab
del TabbedPane
, usa uno de los siguientes métodos:
removeTab(Tab tab)
- Elimina unTab
delTabbedPane
pasando la instancia del Tab que se va a eliminar.removeTab(int index)
- Elimina unTab
delTabbedPane
especificando el índice delTab
que se va a eliminar.
Además de los dos métodos anteriores para eliminar un único Tab
, usa el método removeAllTabs()
para limpiar el TabbedPane
de todas las pestañas.
Los métodos remove()
y removeAll()
no eliminan pestañas dentro del componente.
Asociación Tab/Componente
Para cambiar el Componente
que se mostrará para un Tab
dado, llama al método setComponentFor()
, y pasa ya sea la instancia del Tab
, o el índice de ese Tab dentro del TabbedPane
.
Si este método se utiliza en un Tab
que ya está asociado con un Componente
, el Componente
previamente asociado será destruido.
Configuración y diseño
La clase TabbedPane
tiene dos partes constitutivas: un Tab
que se muestra en una ubicación especificada, y un componente que se mostrará. Este puede ser un único componente, o un componente Composite
, lo que permite la visualización de componentes más complejos dentro de la sección de contenido de una pestaña.
Deslizamiento
El TabbedPane
admite la navegación a través de las diversas pestañas mediante deslizamiento. Esto es ideal para una aplicación móvil, pero también se puede configurar mediante un método incorporado para admitir el deslizamiento del mouse. Tanto el deslizamiento como el deslizamiento del mouse están deshabilitados por defecto, pero se pueden habilitar con los métodos setSwipable(boolean)
y setSwipableWithMouse(boolean)
, respectivamente.
Ubicación de pestañas
Las Pestañas
dentro de un TabbedPane
pueden colocarse en varias posiciones dentro del componente según la preferencia del desarrollador de la aplicación. Las opciones proporcionadas se establecen mediante el enumerado proporcionado, que tiene los valores de TOP
, BOTTOM
, LEFT
, RIGHT
, o HIDDEN
. La configuración predeterminada es TOP
.
Mostrar Código
- Java
Alineación
Además de cambiar la ubicación de los elementos Tab
dentro del TabbedPane
, también es posible configurar cómo se alinearán las pestañas dentro del componente. Por defecto, la configuración AUTO
está en efecto, lo que permite que la ubicación de las pestañas dicte su alineación.
Las otras opciones son START
, END
, CENTER
, y STRETCH
. Las tres primeras describen la posición relativa al componente, y STRETCH
hace que las pestañas llenen el espacio disponible.
Mostrar Código
- Java
Borde e indicador de actividad
El TabbedPane
tendrá un borde mostrado para las pestañas dentro de él por defecto, colocado dependiendo de qué Placement
se ha establecido. Este borde ayuda a visualizar el espacio que ocupan las diversas pestañas dentro del panel.
Cuando se hace clic en un Tab
, por defecto, un indicador de actividad se muestra cerca de ese Tab
para ayudar a resaltar cuál es el Tab
actualmente seleccionado.
Ambas opciones pueden ser personalizadas por un desarrollador cambiando los valores booleanos utilizando los métodos setter apropiados. Para cambiar si se muestra o no el borde, se puede utilizar el método setBorderless(boolean)
, donde true
oculta el borde, y false
, el valor predeterminado, muestra el borde.
Este borde no se aplica a la totalidad del componente TabbedPane
, y simplemente sirve como un separador entre las pestañas y el contenido del componente.
Para establecer la visibilidad del indicador activo, se puede utilizar el método setHideActiveIndicator(boolean)
. Pasar true
a este método ocultará el indicador activo debajo de un Tab
activo, mientras que false
, el valor predeterminado, mantiene el indicador mostrado.
Mostrar Código
- Java
Modos de activación
Para un control más detallado sobre cómo se comporta el TabbedPane
al ser navegado por el teclado, se puede establecer el modo de Activación
para especificar cómo debería comportarse el componente.
-
Auto
: Cuando se establece en automático, navegar pestañas con las teclas de flecha mostrará instantáneamente el componente correspondiente de la pestaña. -
Manual
: Cuando se establece en manual, la pestaña recibirá enfoque pero no se mostrará hasta que el usuario presione la barra espaciadora o enter.
Mostrar Código
- Java
Opciones de eliminación
Los elementos Tab
individuales pueden configurarse para ser cerrables. Las pestañas cerrables tendrán un botón de cierre añadido a la pestaña, que dispara un evento de cierre cuando se clickea. El TabbedPane
dicta cómo se maneja este comportamiento.
-
Manual
: Por defecto, la eliminación se establece enMANUAL
, lo que significa que el evento se dispara, pero depende del desarrollador manejar este evento de la manera que elija. -
Auto
: Alternativamente, se puede usarAUTO
, que disparará el evento y también eliminará elTab
del componente para el desarrollador, eliminando la necesidad de que el desarrollador implemente este comportamiento manualmente.
Estilos
Expansión y tema
El TabbedPane
viene con opciones de Expanse
y Tema
incorporadas similares a otros componentes de webforJ. Estos se pueden utilizar para agregar rápidamente estilos que transmitan varios significados al usuario final sin necesidad de estilizar el componente con CSS.
Mostrar Código
- Java
Mejores prácticas
Las siguientes prácticas se recomiendan para utilizar el TabbedPane
dentro de aplicaciones:
-
Agrupación Lógica: Utiliza pestañas para agrupar lógicamente contenidos relacionados
- Cada pestaña debe representar una categoría o funcionalidad distinta dentro de tu aplicación
- Agrupa pestañas similares o lógicas cerca unas de otras
-
Pestañas Limitadas: Evita abrumar a los usuarios con demasiadas pestañas. Considera usar una estructura jerárquica u otros patrones de navegación donde sea aplicable para una interfaz limpia.
-
Etiquetas Claras: Etiqueta claramente tus Pestañas para su uso intuitivo
- Proporciona etiquetas claras y concisas para cada pestaña
- Las etiquetas deben reflejar el contenido o propósito, facilitando la comprensión a los usuarios
- Utiliza iconos y colores distintos donde sea aplicable
-
Navegación por Teclado: Utiliza el soporte de navegación por teclado del
TabbedPane
de webforJ para hacer la interacción con elTabbedPane
más fluida e intuitiva para el usuario final. -
Pestaña Predeterminada: Si la pestaña predeterminada no está ubicada al principio del
TabbedPane
, considera establecer esta pestaña como predeterminada para información esencial o comúnmente utilizada.