Lijsten
Deze sectie beschrijft gemeenschappelijke eigenschappen van alle lijstcomponenten en is geen klasse die kan worden geïnstantieerd of direct gebruikt.
Er zijn drie soorten lijsten beschikbaar voor gebruik binnen je apps: ListBox, ChoiceBox en ComboBox. Deze componenten tonen allemaal een lijst van sleutel-waarde-items en bieden methoden om de items in de lijst toe te voegen, te verwijderen, te selecteren en te beheren.
Deze pagina beschrijft de gedeelde functies en het gedrag van alle lijstcomponenten, terwijl specifieke details voor elk worden behandeld op hun eigen pagina's.
Gebruik van ListItem
Lijstcomponenten bestaan uit ListItem objecten, die individuele items binnen een lijst vertegenwoordigen. Elk ListItem is gekoppeld aan een unieke sleutel en weertekst. Belangrijke kenmerken van de ListItem klasse zijn:
- Een
ListItembevat een unieke sleutelObjecten een tekstStringom binnen de lijstcomponent weer te geven. - Je kunt een
ListItemconstrueren door een sleutel en tekst op te geven, of alleen de tekst op te geven zodat er een willekeurige sleutel wordt gegenereerd.
Beheren van ListItem objecten met de API
De verschillende Lijstcomponenten bieden verschillende methoden voor het beheren van de lijst met items en het handhaven van een consistente toestand tussen de lijst en de client. Door deze methoden te gebruiken, kun je de items binnen de lijst effectief beheren. De API stelt je in staat om te communiceren met en de lijst te manipuleren om aan de vereisten van je app te voldoen.
Items toevoegen
-
Een item toevoegen:
- Om een
ListItemaan de lijst toe te voegen, kun je deadd(ListItem item)methode gebruiken. - Je kunt ook een nieuw
ListItemtoevoegen door de sleutel en tekst op te geven met deadd(Object key, String text)ofadd(String text)methode.
- Om een
-
Een item op een specifieke index invoegen:
- Om een item op een specifieke index in te voegen, gebruik je de
insert(int index, ListItem item)methode. - Je kunt een item met sleutel en tekst invoegen met de
insert(int index, Object key, String text)ofinsert(int index, String text)methode.
- Om een item op een specifieke index in te voegen, gebruik je de
-
Meerdere items invoegen:
- Je kunt meerdere items op een opgegeven index invoegen met behulp van de
insert(int index, List< ListItem > items)methode.
- Je kunt meerdere items op een opgegeven index invoegen met behulp van de
Om de prestaties te optimaliseren, is het efficiënter om eerst een lijst van ListItem objecten te maken in plaats van elke keer dat je de add() methode gebruikt, een server-naar-client bericht te sturen. Zodra je deze lijst hebt, kun je ze allemaal tegelijk toevoegen met de insert(int index, List<ListItem> items) methode. Deze benadering vermindert de communicatie tussen server en client, wat de algehele efficiëntie verbetert. Voor gedetailleerde richtlijnen over dit en andere best practices in de webforJ-architectuur, raadpleeg Client/Server Interaction.
Items verwijderen
-
Een item verwijderen:
- Om een item uit de lijst te verwijderen, gebruik je de
remove(int index)ofremove(Object key)methode.
- Om een item uit de lijst te verwijderen, gebruik je de
-
Alle items verwijderen:
- Je kunt alle items uit de lijst verwijderen met
removeAll().
- Je kunt alle items uit de lijst verwijderen met
Items selecteren
Alle lijsttypes implementeren de SelectableList interface. Deze interface biedt meerdere verschillende manieren om de 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 naar 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 naar een ListItem als parameter om te selecteren.
List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey(0);
Andere lijstbewerkingen
-
Toegang tot en bijwerken van items:
- Om items op te vragen op sleutel of index, gebruik je
getByKey(Object key)ofgetByIndex(int index). - Je kunt de tekst van een item bijwerken met de
setText(String text)methode binnen deListItemklasse.
- Om items op te vragen op sleutel of index, gebruik je
-
Informatie over de lijst ophalen:
Itereren over lijsten
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 kun je eenvoudig door elk ListItem lopen, zodat je gemakkelijk toegang hebt tot, wijzigingen kunt aanbrengen of acties kunt uitvoeren op elk item met minimale inspanning. De Iterable interface is een standaardpatroon van de Java-taal, wat ervoor zorgt dat je code bekend en onderhoudbaar is voor elke Java-ontwikkelaar.
De onderstaande codefragmenten tonen twee gemakkelijke manieren om door een lijst te itereren:
list.forEach(item -> {
item.setText("Gewijzigd: " + item.getText());
});
for (ListItem item : list) {
item.setText("Gewijzigd2: " + item.getText());
}
Zoeken 26.02
Alle Lijstcomponenten hebben een ingebouwd zoekveld dat de items filtert op basis van hun tekst. Het veld is standaard uitgeschakeld. Gebruik getSearch() om de zoekconfiguratie te bereiken, en gebruik vervolgens setFieldVisible(true) om het veld bovenaan de lijst van de component weer te geven.
ComboBox comboBox = new ComboBox("Fruit");
comboBox.insert("Apple", "Banana", "Cherry", "Apricot", "Pineapple");
comboBox.getSearch()
.setFieldVisible(true)
.setPlaceholder("Zoek naar fruit")
.setEmptyMessage("Geen fruit gevonden");
Toon Code
- ListSearchView.java
Filtering verbergt alleen de items die niet overeenkomen. De itemindexen en de huidige selectie blijven onveranderd, zodat getSelectedIndex() blijft verwijzen naar de volledige lijst in plaats van naar de momenteel zichtbare items.
Het zoekveld kan opnieuw verborgen worden met setFieldVisible(false).
De velden configureren
-
setPlaceholder()stelt de tijdelijke tekst van het zoekveld in. De standaardwaarde isZoeken. -
setEmptyMessage()stelt de boodschap in die wordt weergegeven wanneer een zoekopdracht geen resultaten oplevert. De standaardwaarde isGeen gegevens om weer te geven.
Elke instelling heeft een bijbehorende getter: isFieldVisible(), getPlaceholder(), getEmptyMessage(), en getTerm().
Filteren vanuit de code
setTerm() stelt de zoekterm in en filtert de lijst. Het werkt ongeacht of het veld zichtbaar is, zodat een lijst kan worden gefilterd zonder dat er een zoekgebruikersinterface wordt weergegeven.
listBox.getSearch().setTerm("apple");
getTerm() en het zoekveldTypen in het zoekveld schrijft de term niet terug naar de configuratie. getTerm() retourneert de laatste waarde die aan setTerm() is doorgegeven, niet wat de gebruiker heeft getypt.
Gemeenschappelijke lijst eigenschappen
Label
Alle Lijstcomponenten kunnen aan 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 de bedoeling of verwachte selectie voor die specifieke lijst te begrijpen. Naast hun belang voor gebruiksvriendelijkheid spelen lijstlabels ook een cruciale rol in toegankelijkheid, waardoor schermlezers en ondersteunende technologieën nauwkeurige informatie kunnen bieden en navigatie per toetsenbord kunnen vergemakkelijken.
Helpertekst
Elke Lijstcomponent kan helpertekst onder de lijst weergeven met behulp van 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 je de controle hebt over hoe tekst en inhoud binnen de component zijn uitgelijnd.
Gebruik de setHorizontalAlignment() methode om de uitlijning in te stellen:
HorizontalAlignment.LEFT(standaard)HorizontalAlignment.MIDDLEHorizontalAlignment.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 je de algehele grootte en visuele gewicht van de component kunt aanpassen. Dit is nuttig voor het aanpassen van de component aan verschillende UI-contexten, zoals formulieren, dialoogvensters, zijbalken, enz.
Gebruik de setExpanse() methode om het expansieniveau in te stellen. Opties omvatten:
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(standaard)Expanse.LARGEExpanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);
Je kunt de huidige instelling ophalen met:
Expanse current = listBox.getExpanse();
Onderwerpen
ChoiceBox
Pick a single value from a fixed set with the ChoiceBox dropdown, including dropdown type styling, max row count, and keyboard navigation.
ComboBox
Combine a dropdown list with a text input in the ComboBox to let users select preset items or type custom values with placeholder support.
ListBox
Show a scrollable, always-visible list with the ListBox component, supporting single or multiple selection and keyboard navigation.