TabbedPane
Meerdere secties van inhoud kunnen worden georganiseerd onder een enkele TabbedPane, waarbij elke sectie is verbonden met een klikbare Tab. Slechts één sectie is tegelijkertijd zichtbaar, en tabbladen kunnen tekst, pictogrammen of beide weergeven om gebruikers te helpen tussen hen te navigeren.
Gebruik
De TabbedPane-klasse biedt ontwikkelaars een krachtig hulpmiddel voor het organiseren en presenteren van meerdere tabbladen of secties binnen een gebruikersinterface. Hier zijn enkele typische scenario's waarin je een TabbedPane in je applicatie zou kunnen gebruiken:
-
Documentviewer: Het implementeren van een documentviewer waarbij elk tabblad een ander document of bestand vertegenwoordigt. Gebruikers kunnen eenvoudig schakelen tussen open documenten voor efficiënte multitasking.
-
Gegevensbeheer: Gebruik een
TabbedPaneom gegevensbeheertaken te organiseren, bijvoorbeeld:- Verschillende datasets die in een applicatie worden weergegeven
- Diverse gebruikersprofielen kunnen binnen afzonderlijke tabbladen worden weergegeven
- Verschillende profielen in een gebruikersbeheersysteem
-
Module-selectie: Een
TabbedPanekan verschillende modules of secties vertegenwoordigen. Elk tabblad kan de functionaliteiten van een specifieke module encapsuleren, zodat gebruikers zich op één aspect van de applicatie tegelijkertijd kunnen concentreren. -
Taakbeheer: Taakbeheertoepassingen kunnen een
TabbedPanegebruiken om verschillende projecten of taken weer te geven. Elk tabblad zou kunnen overeenkomen met een specifiek project, waardoor gebruikers taken afzonderlijk kunnen beheren en volgen. -
Programmanavigatie: Binnen een applicatie die verschillende programma's moet uitvoeren, kan een
TabbedPane:- Dienen als een zijbalk waarmee verschillende applicaties of programma's binnen een enkele applicatie kunnen worden uitgevoerd, zoals getoond in de
AppLayoutsjabloon - Een bovenbalk maken die een vergelijkbaar doel kan dienen, of sub-applicaties binnen een reeds geselecteerde applicatie vertegenwoordigen.
- Dienen als een zijbalk waarmee verschillende applicaties of programma's binnen een enkele applicatie kunnen worden uitgevoerd, zoals getoond in de
Tabs
Tabbladen zijn UI-elementen die aan tabbed panes kunnen worden toegevoegd om verschillende contentweergaven te organiseren en tussen hen te schakelen.
Tabs zijn niet bedoeld om als zelfstandige componenten te worden gebruikt. Ze zijn bedoeld om in combinatie met tabbed panes te worden gebruikt. Deze klasse is geen Component en moet als zodanig niet worden gebruikt.
Eigenschappen
Tabbladen bestaan uit de volgende eigenschappen, die vervolgens worden gebruikt bij het toevoegen ervan in een TabbedPane. Deze eigenschappen hebben getters en setters om aanpassingen binnen een TabbedPane te vergemakkelijken.
-
Sleutel(
Object): Vertegenwoordigt de unieke identificator voor deTab. -
Tekst(
String): De tekst die als titel voor deTabbinnen deTabbedPanewordt weergegeven. Dit wordt ook wel de titel genoemd via degetTitle()ensetTitle(String title)methoden. -
Tooltip(
String): De tooltip-tekst die aan deTabis gekoppeld, die wordt weergegeven wanneer de cursor over deTabbeweegt. -
Ingeschakeld(
boolean): Vertegenwoordigt of deTabmomenteel is ingeschakeld of niet. Kan worden gewijzigd met desetEnabled(boolean enabled)methode. -
Sluitbaar(
boolean): Vertegenwoordigt of deTabkan worden gesloten. Kan worden gewijzigd met desetCloseable(boolean enabled)methode. Dit voegt een sluitknop toe op deTab, die door de gebruiker kan worden aangeklikt, en genereert een verwijderingsgebeurtenis. DeTabbedPanecomponent bepaalt hoe om te gaan met de verwijdering. -
Slot(
Component): Slots bieden flexibele opties voor het verbeteren van de mogelijkheden van eenTab. Je kunt pictogrammen, labels, laadspinners, wissen/resetten functionaliteit, avatar/profielafbeeldingen en andere nuttige componenten binnen eenTabnestelen om de bedoelde betekenis voor gebruikers verder te verduidelijken. Je kunt een component aan deprefix-slot van eenTabtoevoegen tijdens de constructie. Alternatief kun je desetPrefixComponent()ensetSuffixComponent()methoden gebruiken om verschillende componenten voor en na de weergegeven optie binnen eenTabin te voegen.TabbedPane pane = new TabbedPane();
pane.addTab(new Tab("Documenten", TablerIcon.create("files")));
Tab manipulatie
Verschillende methoden bestaan om ontwikkelaars in staat te stellen Tab-elementen binnen de TabbedPane toe te voegen, in te voegen, te verwijderen en verschillende eigenschappen te manipuleren.
Een Tab toevoegen
De addTab() en add() methoden bestaan in verschillende overbelaste capaciteiten om ontwikkelaars flexibiliteit te bieden bij het toevoegen van nieuwe tabs aan de TabbedPane. Het toevoegen van een Tab plaatst deze na alle eerder bestaande tabs.
addTab(String text)- Voegt eenTabtoe aan deTabbedPanemet de opgegevenStringals tekst van deTab.addTab(Tab tab)- Voegt deTabtoe die als parameter is opgegeven aan deTabbedPane.addTab(String text, Component component)- Voegt eenTabtoe met de gegevenStringals tekst van deTab, en de opgegevenComponentdie in de inhoudssectie van deTabbedPanewordt weergegeven.addTab(Tab tab, Component component)- Voegt de opgegevenTabtoe en toont de opgegevenComponentin de inhoudssectie van deTabbedPane.add(Component... component)- Voegt een of meerComponent-instanties toe aan deTabbedPane, waarbij voor elke een afzonderlijkTabwordt gemaakt, met de tekst ingesteld op de naam van deComponent.
De add(Component... component) bepaalt de naam van de doorgegeven Component door component.getName() aan te roepen op het doorgegeven argument.
Een Tab invoegen
Naast het toevoegen van een Tab aan het einde van de bestaande tabs, is het ook mogelijk om er een nieuwe te maken op een aangewezen positie. Hiervoor zijn meerdere overbelaste versies van insertTab() beschikbaar.
insertTab(int index, String text)- Voegt eenTabtoe aan deTabbedPaneop de aangegeven index met de opgegevenStringals tekst van deTab.insertTab(int index, Tab tab)- Voegt deTabdie als parameter is opgegeven toe aan deTabbedPaneop de aangegeven index.insertTab(int index, String text, Component component)- Voegt eenTabtoe met de gegevenStringals tekst van deTab, en de opgegevenComponentin de inhoudssectie van deTabbedPane.insertTab(int index, Tab tab, Component component)- Voegt de opgegevenTabtoe en toont de opgegevenComponentin de inhoudssectie van deTabbedPane.
Een Tab verwijderen
Om een enkele Tab uit de TabbedPane te verwijderen, gebruik een van de volgende methoden:
removeTab(Tab tab)- Verwijdert eenTabuit deTabbedPanedoor de Tab-instantie door te geven die moet worden verwijderd.removeTab(int index)- Verwijdert eenTabuit deTabbedPanedoor de index van de te verwijderenTabop te geven.
Naast de twee bovenstaande methoden voor het verwijderen van een enkele Tab, gebruik de removeAllTabs() methode om de TabbedPane van alle tabs te wissen.
De remove() en removeAll() methoden verwijderen geen tabs binnen de component.
Tab/Component associatie
Om de Component die voor een bepaalde Tab moet worden weergegeven te veranderen, roep je de setComponentFor() methode aan en geef je ofwel de instantie van de Tab door, of de index van die Tab binnen de TabbedPane.
Als deze methode wordt gebruikt op een Tab die al is geassocieerd met een Component, wordt de eerder geassocieerde Component vernietigd.
Configuratie en lay-out
De TabbedPane-klasse heeft twee samenstellende delen: een Tab die op een specifieke locatie wordt weergegeven, en een component die wordt weergegeven. Dit kan een enkele component zijn of een Composite component, waarmee complexere componenten binnen de inhoudssectie van een tab kunnen worden weergegeven.
Swipen
De TabbedPane ondersteunt navigeren door de verschillende tabs via swipen. Dit is ideaal voor een mobiele applicatie, maar kan ook worden geconfigureerd via een ingebouwde methode om muis-swipen te ondersteunen. Zowel swipen als muis-swipen zijn standaard uitgeschakeld, maar kunnen worden ingeschakeld met de setSwipable(boolean) en setSwipableWithMouse(boolean) methoden.
Tabs plaatsen
De Tabs binnen een TabbedPane kunnen op verschillende posities binnen de component worden geplaatst op basis van de voorkeuren van de applicatieontwikkelaar. Geleverd opties worden ingesteld met behulp van de opgegeven enum, die de waarden TOP, BOTTOM, LEFT, RIGHT of HIDDEN heeft. De standaardinstelling is TOP.
Toon Code
- TabbedPanePlacementView.java
Uitlijning
Naast het veranderen van de plaatsing van de Tab-elementen binnen de TabbedPane, is het ook mogelijk om te configureren hoe de tabs binnen de component zullen uitlijnen. Standaard is de instelling AUTO van kracht, wat de plaatsing van de tabs toestaat om hun uitlijning te dicteren.
De andere opties zijn START, END, CENTER, en STRETCH. De eerste drie beschrijven de positie ten opzichte van de component, terwijl STRETCH ervoor zorgt dat de tabs de beschikbare ruimte vullen.
Toon Code
- TabbedPaneAlignmentView.java
Rand en activiteitsindicator
De TabbedPane heeft standaard een rand die wordt weergegeven voor de tabbladen erin, afhankelijk van welke Placement is ingesteld. Deze rand helpt om de ruimte te visualiseren die de verschillende tabbladen binnen het paneel innemen.
Wanneer een Tab wordt aangeklikt, wordt standaard een activiteitsindicator weergegeven nabij dat Tab om te helpen benadrukken welk tabblad momenteel is geselecteerd.
Beide opties kunnen door een ontwikkelaar worden aangepast door de booleaanse waarden te wijzigen met behulp van de geschikte setter-methoden. Om te veranderen of de rand wordt weergegeven, kan de setBorderless(boolean) methode worden gebruikt, waarbij true de rand verbergt, en false, de standaardwaarde, de rand weergeeft.
Deze rand is niet van toepassing op de geheel TabbedPane component, en dient slechts als een scheiding tussen de tabs en de inhoud van de component.
Om de zichtbaarheid van de actieve indicator in te stellen, kan de setHideActiveIndicator(boolean) methode worden gebruikt. Het doorgeven van true aan deze methode zal de actieve indicator verbergen onder een actieve Tab, terwijl false, de standaardwaarde, de indicator zichtbaar houdt.
Toon Code
- TabbedPaneBorderView.java
Activatiemodi
Voor meer verfijnde controle over hoe de TabbedPane zich gedraagt wanneer deze met het toetsenbord wordt genavigeerd, kan de Activation-modus worden ingesteld om op te geven hoe de component zich moet gedragen.
-
Auto: Wanneer ingesteld op automatisch, zal navigeren door tabs met de pijltoetsen onmiddellijk de bijbehorende tabcomponent weergeven. -
Handmatig: Wanneer ingesteld op handmatig, krijgt het tabblad focus maar wordt het niet weergegeven totdat de gebruiker op spatie of enter drukt.
Toon Code
- TabbedPaneActivationView.java
Verwijderopties
Individuele Tab-elementen kunnen zo worden ingesteld dat ze sluitbaar zijn. Sluitbare tabbladen krijgen een sluitknop toegevoegd aan het tabblad, die een sluit gebeurtenis genereert wanneer erop wordt geklikt. De TabbedPane bepaalt hoe dit gedrag wordt afgehandeld.
-
Handmatig: Standaard is verwijderen ingesteld opMANUAL, wat betekent dat de gebeurtenis wordt gegenereerd, maar het is aan de ontwikkelaar om deze gebeurtenis op welke manier dan ook af te handelen. -
Automatisch: Alternatief kanAUTOworden gebruikt, wat de gebeurtenis zal genereren en ook deTabvan de component zal verwijderen voor de ontwikkelaar, waardoor de behoefte aan de ontwikkelaar om dit gedrag handmatig te implementeren komt te vervallen.
Segmentcontrole 26.00
De TabbedPane kan worden weergegeven als een segmentcontrole door de segment property in te schakelen met setSegment(true). In deze modus worden tabbladen weergegeven met een schuifindicatie die de actieve selectie benadrukt, wat een compact alternatief biedt voor de standaard tab-interface.
Toon Code
- TabbedPaneSegmentView.java
Stijl
Uitbreiding en thema
De TabbedPane wordt geleverd met ingebouwde Expanse en Thema opties, vergelijkbaar met andere webforJ-componenten. Deze kunnen worden gebruikt om snel styling toe te voegen die verschillende betekenissen aan de eindgebruiker overbrengt zonder dat de component met CSS hoeft te worden gestyled.
Toon Code
- TabbedPaneExpanseThemeView.java
Beste werkwijzen
De volgende praktijken worden aanbevolen voor het gebruiken van de TabbedPane binnen applicaties:
-
Logische groepsvorming: Gebruik tabs om gerelateerde inhoud logisch te groeperen
- Elk tabblad moet een afzonderlijke categorie of functionaliteit binnen je applicatie vertegenwoordigen
- Groepeer vergelijkbare of logische tabbladen dicht bij elkaar
-
Beperkte tabs: Vermijd het overweldigen van gebruikers met te veel tabs. Overweeg het gebruik van een hiërarchische structuur of andere navigatiepatronen waar van toepassing voor een schone interface
-
Duidelijke labels: Label je Tabs duidelijk voor intuïtief gebruik
- Zorg voor duidelijke en beknopte labels voor elk tabblad
- Labels moeten de inhoud of het doel weerspiegelen, zodat het voor gebruikers gemakkelijk te begrijpen is
- Maak gebruik van pictogrammen en onderscheidende kleuren waar van toepassing
-
Toetsenbordnavigatie: Gebruik webforJ's
TabbedPanetoetsenbordnavigatie-ondersteuning om interactie met deTabbedPanesoepeler en intuïtiever te maken voor de eindgebruiker -
Standaardtab: Als de standaardtab niet aan het begin van de
TabbedPaneis geplaatst, overweeg dan om dit tabblad als standaard in te stellen voor essentiële of veelgebruikte informatie.