Overslaan naar hoofdinhoud

Lists

Openen in ChatGPT
info

Deze sectie beschrijft de gemeenschappelijke kenmerken van alle lijstcomponenten en is geen klasse die kan worden geïnstantieerd of rechtstreeks kan worden gebruikt.

Er zijn drie typen lijsten beschikbaar voor gebruik binnen uw apps: ListBox, ChoiceBox en ComboBox. Deze componenten tonen allemaal een lijst van sleutel-waarde items en bieden methoden om items binnen de lijst toe te voegen, te verwijderen, te selecteren en te beheren.

Deze pagina beschrijft de gedeelde kenmerken en het gedrag van alle lijstcomponenten, terwijl specifieke details voor elk op hun respectieve pagina's worden behandeld.

Gebruik van ListItem

Lijstcomponenten zijn samengesteld uit ListItem objecten, die individuele items binnen een lijst vertegenwoordigen. Elk ListItem is gekoppeld aan een unieke sleutel en weergavetekst. Belangrijke kenmerken van de ListItem klasse zijn:

  • Een ListItem encapsuleert een unieke sleutel Object en een tekst String die binnen de lijstcomponent wordt weergegeven.
  • U kunt een ListItem construeren door een sleutel en tekst op te geven, of alleen de tekst op te geven zodat een willekeurige sleutel wordt gegenereerd.

Beheren van ListItem objecten met de API

De verschillende lijstcomponenten bieden verschillende methoden voor het beheren van de lijst van items en het handhaven van een consistente status tussen de lijst en de client. Door gebruik te maken van deze methoden, kunt u de items binnen de lijst effectief beheren. De API stelt u in staat om met de lijst te interageren en deze te manipuleren om aan de vereisten van uw app te voldoen.

Items toevoegen

tip

Om de prestaties te optimaliseren, is het efficiënter om eerst een lijst van ListItem objecten te maken in plaats van bij elke methode-aanroep een server-naar-client-bericht te verzenden met de add() methode. Zodra u deze lijst heeft, kunt u ze allemaal in één keer toevoegen met de insert(int index, List<ListItem> items) methode. Deze aanpak vermindert de communicatie tussen de server en de client, waardoor de algehele efficiëntie wordt verbeterd. Voor gedetailleerde richtlijnen over dit en andere best practices in de webforJ-architectuur, verwijzen wij naar Client/Server Interaction.

Items verwijderen

Items selecteren

Alle lijsttypen implementeren de SelectableList interface. Deze interface biedt meerdere verschillende manieren om het huidige ListItem te selecteren.

Met een gegeven ListItem

select(ListItem item) neemt een ListItem als parameter om te selecteren.

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

Met een gegeven sleutel van een ListItem

selectKey(Object key) neemt een sleutel van een ListItem als parameter om te selecteren.

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

Met een gegeven index van een ListItem

selectIndex(int index) neemt een index van een ListItem als parameter om te selecteren.

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

Andere lijstbewerkingen

Lijsten itereren

Alle lijstcomponenten implementeren de Java Iteratable interface, die een efficiënte en intuïtieve manier biedt om door de inhoud van een lijst te itereren. Met deze interface kunt u eenvoudig door elk ListItem lopen, waardoor het eenvoudig is om toegang te krijgen, wijzigingen aan te brengen of acties op elk item uit te voeren met minimale inspanning. De Iterable interface is een standaardpatroon van de Java-taal, waardoor uw code bekend en onderhoudbaar is voor elke Java-ontwikkelaar.

De onderstaande codefragmenten demonstreren twee eenvoudige manieren om door een lijst te itereren:

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

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

Gedeelde lijst-eigenschappen

Label

Alle lijstcomponenten kunnen een label worden toegewezen, wat een beschrijvende tekst of titel is die aan de component is gekoppeld. Labels bieden een korte uitleg of aanwijzing om gebruikers te helpen het doel of de verwachte selectie voor die specifieke lijst te begrijpen. Naast hun belang voor de bruikbaarheid, spelen lijstlabels ook een cruciale rol in toegankelijkheid, waardoor schermlezers en ondersteunende technologieën nauwkeurige informatie kunnen bieden en het navigeren met het toetsenbord kunnen vergemakkelijken.

Helpertekst

Elke lijstcomponent kan helpertekst onder de lijst weergeven met de setHelperText() methode. Deze helpertekst biedt aanvullende context of uitleg over de beschikbare opties, zodat gebruikers de nodige informatie hebben om weloverwogen selecties te maken.

Horizontale uitlijning

Alle lijstcomponenten implementeren de HasHorizontalAlignment interface, waardoor u controle heeft over hoe tekst en inhoud binnen de component worden uitgelijnd.

Gebruik de setHorizontalAlignment() methode om de uitlijning in te stellen:

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

Om de huidige uitlijning te krijgen:

HorizontalAlignment alignment = listBox.getHorizontalAlignment();

Expansies

Alle lijstcomponenten in webforJ implementeren ook de HasExpanse interface, waarmee u de algemene grootte en visuele gewicht van de component kunt aanpassen. Dit is nuttig om de component aan te passen aan verschillende UI-contexten, zoals formulieren, dialoogvensters, zijbalken, enz.

Gebruik de setExpanse() methode om het expansieniveau in te stellen. Opties zijn onder andere:

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

U kunt de huidige instelling ophalen met:

Expanse current = listBox.getExpanse();

Onderwerpen