Listat
Tässä osiossa kuvataan kaikkien listakomponenttien yhteisiä ominaisuuksia, eikä se ole luokka, jota voidaan instantiate tai käyttää suoraan.
Sovelluksesi käytettävissä on kolme erilaista listatyyppiä: ListBox, ChoiceBox ja ComboBox. Nämä komponentit näyttävät kaikki avain-arvo -elementtien listan ja tarjoavat menetelmiä elementtien lisäämiseen, poistamiseen, valintaan ja hallintaan.
Tällä sivulla käsitellään kaikkien listakomponenttien jaettuja ominaisuuksia ja käyttäytymistä, kun taas kukin erityinen yksityiskohta käsitellään omilla sivuillaan.
Käyttäminen ListItem
Listakomponentit koostuvat ListItem -objekteista, jotka edustavat yksittäisiä elementtejä listassa. Jokaisella ListItem:lla on ainutlaatuinen avain ja näyttöteksti. Tärkeitä ominaisuuksia ListItem -luokassa ovat:
ListItemkapseloi ainutlaatuisen avainObject-tyypin ja tekstinString, joka näytetään listakomponentissa.- Voit rakentaa
ListItem:n antamalla avaimen ja tekstin tai määrittämällä vain tekstin, jota käytetään myös avaimena.
Avain tulee olla ainutlaatuinen listassa. Toisen tekstipohjaisen elementin lisääminen, jossa on sama teksti, heittää IllegalArgumentException-poikkeuksen. Toistuvien nimien näyttämiseksi on toimitettava erilliset avaimet noille elementeille.
ListItem -objektien hallinta API:n avulla
Eri listakomponentit tarjoavat useita menetelmiä elementtien hallitsemiseksi ja johdonmukaisen tilan ylläpitämiseksi listan ja asiakkaan välillä. Näiden menetelmien käyttö auttaa sinua tehokkaasti hallitsemaan elementtejä listassa. API:n avulla voit vuorovaikuttaa ja manipuloida listaa sovelluksesi vaatimusten mukaan.
Elementtien lisääminen
-
Elementin lisääminen:
- Voit lisätä
ListItem:n listaan käyttämälläadd(ListItem item)-metodia. - Voit myös lisätä uuden
ListItem:n määrittämällä avaimen ja tekstin käyttämälläadd(Object key, String text)taiadd(String text)-metodia.
- Voit lisätä
-
Elementin lisääminen tiettyyn indeksiin:
- Voit lisätä elementin tiettyyn indeksiin käyttämällä
insert(int index, ListItem item)-metodia. - Voit lisätä elementin avaimen ja tekstin avulla käyttäen
insert(int index, Object key, String text)taiinsert(int index, String text)-metodia.
- Voit lisätä elementin tiettyyn indeksiin käyttämällä
-
Useiden elementtien lisääminen:
- Voit lisätä useita elementtejä määritettyyn indeksiin käyttämällä
insert(int index, List< ListItem > items)-metodia.
- Voit lisätä useita elementtejä määritettyyn indeksiin käyttämällä
Suorituskyvyn optimoimiseksi on tehokkaampaa luoda ensin lista ListItem -objekteista sen sijaan, että laukaise palvelimen ja asiakkaan välinen viesti joka kerta, kun käytät add() -metodia. Kun sinulla on tämä lista, voit lisätä ne kaikki kerralla käyttäen insert(int index, List<ListItem> items) -metodia. Tämä lähestymistapa vähentää palvelimen ja asiakkaan välistä viestintää, mikä parantaa kokonaisuudessaan tehokkuutta. Yksityiskohtaisia ohjeita tästä ja muista parhaista käytännöistä webforJ-arkkitehtuurissa on saatavilla kohdasta Client/Server Interaction.
Elementtien poistaminen
-
Elementin poistaminen:
- Voit poistaa elementin listasta käyttämällä
remove(int index)tairemove(Object key)-metodia.
- Voit poistaa elementin listasta käyttämällä
-
Kaikkien elementtien poistaminen:
- Voit poistaa kaikki elementit listasta käyttämällä
removeAll().
- Voit poistaa kaikki elementit listasta käyttämällä
Elementtien valitseminen
Kaikki listatyypit toteuttavat SelectableList -rajapinnan. Tämä rajapinta mahdollistaa useita eri tapoja valita nykyinen ListItem.
Tietyn ListItem avulla
select(ListItem item) ottaa parametrina ListItem -objektin valitsemiseksi.
ListBox demoList = new ListBox();
ListItem demoItem = new ListItem("demo","Demo Item");
demoList.add(demoItem);
demoList.select(demoItem);
Tietyn ListItem avaimen avulla
selectKey(Object key) ottaa avaimen ListItem -objektin valitsemiseksi.
ListBox demoList = new ListBox();
demoList.add("demo","Demo Item");
demoList.selectKey("demo");
Tietyn ListItem indeksin avulla
selectIndex(int index) ottaa indeksin ListItem -objektin valitsemiseksi.
ListBox demoList = new ListBox();
demoList.add("demo","Demo Item");
demoList.selectIndex(0);
Muut listatoiminnot
-
Elementtien käyttö ja päivittäminen:
- Voit käyttää elementtejä avaimen tai indeksin mukaan, käyttämällä
getByKey(Object key)taigetByIndex(int index). - Voit päivittää elementin tekstiä käyttämällä
setText(String text)-metodiaListItem-luokassa.
- Voit käyttää elementtejä avaimen tai indeksin mukaan, käyttämällä
-
Tietojen hakeminen listasta:
Listoihin iterointi
Kaikki listakomponentit toteuttavat Java Iterable -rajapinnan. Käytä forEach()- tai for-silmukkaa päästäksesi käsiksi tai muokataksesi jokaista ListItem:ia.
Alla oleva koodin pätkä näyttää kaksi helppoa tapaa iteroida listan läpi:
list.forEach(item -> {
item.setText("Muokattu: " + item.getText());
});
for (ListItem item : list) {
item.setText("Muokattu2: " + item.getText());
}
Haku 26.02
Kaikissa List-komponenteissa on sisäänrakennettu hakukenttä, joka suodattaa elementtejä niiden tekstin perusteella. Kenttä on oletuksena pois päältä. Käytä getSearch() päästäksesi hakukonfiguraatioon, sitten setFieldVisible(true) näyttääksesi kentän komponentin listan yläosassa.
ComboBox comboBox = new ComboBox("Hedelmä");
comboBox.insert("Omena", "Banaani", "Kirsikka", "Aprikoosi", "Ananas");
comboBox.getSearch()
.setFieldVisible(true)
.setPlaceholder("Hae hedelmiä")
.setEmptyMessage("Ei hedelmiä löytynyt");
Suodatus piilottaa vain ne elementit, jotka eivät vastaa. Elementtien indeksit ja nykyinen valinta pysyvät muuttumattomina, joten getSelectedIndex() viittaa edelleen koko listaan eikä vain nykyisin näkyviin elementteihin.
Hakukenttä voidaan piilottaa uudelleen käyttämällä setFieldVisible(false).
Kentän konfigurointi
-
setPlaceholder()asettaa hakukentän paikkamerkkitekstin. Oletusarvo onHae. -
setEmptyMessage()asettaa viestin, joka näkyy, kun haku ei palauta tuloksia. Oletusarvo onEi näyttödataa.
Jokaiselle asetukselle on vastaava getter: isFieldVisible(), getPlaceholder(), getEmptyMessage(), ja getTerm().
Suodatus koodista
setTerm() asettaa hakuteremin ja suodattaa listan. Se toimii riippumatta siitä, onko kenttä näkyvissä, joten lista voidaan suodattaa ilman, että hakui-käyttöliittymää näytetään.
listBox.getSearch().setTerm("omena");
getTerm() ja hakukenttäKirjoittaminen hakukenttään ei kirjoita termiä takaisin konfiguraatioon. getTerm() palauttaa viimeisen arvon, joka annettiin setTerm():lle, eikä sitä, mitä käyttäjä on kirjoittanut.
Yhteiset listan ominaisuudet
Otsikko
Kaikki List-komponentit voidaan liittää otsikkoon, joka on kuvaava teksti tai nimi, joka liittyy komponenttiin. Otsikot tarjoavat lyhyen selityksen tai kehotuksen, joka auttaa käyttäjiä ymmärtämään tietyn listan tarkoituksen tai odotetun valinnan. Käytettävyyden lisäksi listan otsikoilla on myös tärkeä rooli saavutettavuudessa, mahdollistaen näyttöruudun lukijoiden ja apuvälineiden tarjoamat tarkat tiedot ja helpottaen näppäimistön navigointia.
Aputeksti
Jokainen List-komponentti voi näyttää aputekstiä listan alla käyttämällä setHelperText() -metodia. Tämä aputeksti tarjoaa lisäkontekstia tai selityksiä saatavilla olevista vaihtoehdoista, varmistaen, että käyttäjillä on tarvittavat tiedot harkittuihin valintoihin.
Vaaka-koordinaatio
Kaikki listakomponentit toteuttavat HasHorizontalAlignment -rajapinnan, joka antaa sinulle hallintaa siitä, miten teksti ja sisältö on kohdistettu komponentissa.
Käytä setHorizontalAlignment() -metodia yhdessä HasHorizontalAlignment.Alignment -enumeraation kanssa asettaaksesi kohdistuksen:
Alignment.LEFT(oletus)Alignment.MIDDLEAlignment.RIGHT
ListBox listBox = new ListBox();
listBox.setHorizontalAlignment(Alignment.LEFT);
Hanki nykyinen kohdistus:
Alignment alignment = listBox.getHorizontalAlignment();
Laajuus
Kaikki listakomponentit webforJ:ssa toteuttavat myös HasExpanse -rajapinnan, jolloin voit säätää komponentin kokoluokkaa ja visuaalista painoa. Tämä on hyödyllistä mukautettaessa komponenttia eri käyttöliittymäyhteyksiin, kuten lomakkeisiin, dialogeihin, sivupalkkeihin jne.
Käytä setExpanse() -metodia säätääksesi laajuusastetta. Vaihtoehtoja ovat:
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(oletus)Expanse.LARGEExpanse.XLARGE
ListBox listBox = new ListBox();
listBox.setExpanse(Expanse.LARGE);
Voit noutaa nykyisen asetuksen käyttämällä:
Expanse current = listBox.getExpanse();
Aiheet
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.

