Luettelot
Tässä osiossa kuvataan kaikkien listakomponenttien yhteiset ominaisuudet, eikä tämä ole luokka, jota voidaan instansioida tai käyttää suoraan.
Sovelluksissasi on kolme tyyppiä listoja käytettävissä: ListBox, ChoiceBox ja ComboBox. Nämä komponentit näyttävät kaikki joukon avain-arvo -kohteita ja tarjoavat menetelmiä kohteiden lisäämiseen, poistamiseen, valitsemiseen ja hallintaan listassa.
Tällä sivulla esitellään kaikkien listakomponenttien yhteiset ominaisuudet ja toiminta, kun taas kunkin erityiset tiedot käsitellään niiden omilla sivuillaan.
Käyttäminen ListItem
Listakomponentit koostuvat ListItem -objekteista, jotka edustavat yksittäisiä kohteita listassa. Jokaisella ListItem:lla on ainutlaatuinen avain ja näyttöteksti. Tärkeitä ominaisuuksia ListItem -luokassa ovat:
ListItemkapseloi ainutlaatuisen avaimenObjectja tekstinString, joka näytetään listakomponentissa.- Voit rakentaa
ListItem:n antamalla avaimen ja tekstin tai määrittämällä vain tekstin, jolloin satunnainen avain luodaan.
ListItem-objektien hallinta API:n avulla
Erilaiset listakomponentit tarjoavat useita menetelmiä kohdelistan hallitsemiseksi ja tasapainoisen tilan ylläpitämiseksi listan ja asiakkaan välillä. Käyttämällä näitä menetelmiä voit tehokkaasti hallita kohteita listassa. API mahdollistaa sinun vuorovaikuttaa ja manipuloida listaa sovelluksesi vaatimusten mukaisesti.
Kohteiden lisääminen
-
Kohteen lisääminen:
- Voit lisätä
ListItem-kohteen listaan käyttämälläadd(ListItem item)-menetelmää. - Voit myös lisätä uuden
ListItemmäärittämällä avaimen ja tekstin käyttämälläadd(Object key, String text)taiadd(String text)-menetelmää.
- Voit lisätä
-
Kohteen lisääminen tiettyyn indeksiin:
- Voit lisätä kohteen tiettyyn indeksiin käyttämällä
insert(int index, ListItem item)-menetelmää. - Voit syöttää kohteen avaimen ja tekstin käyttämällä
insert(int index, Object key, String text)taiinsert(int index, String text)-menetelmää.
- Voit lisätä kohteen tiettyyn indeksiin käyttämällä
-
Useiden kohteiden lisääminen:
- Voit lisätä useita kohteita määritettyyn indeksiin käyttämällä
insert(int index, List< ListItem > items)-menetelmää.
- Voit lisätä useita kohteita määritettyyn indeksiin käyttämällä
Suorituskyvyn optimoimiseksi, sen sijaan että laukaistaisit palvelin-asiakasviestin joka kerta käyttäessäsi add()-menetelmää, on tehokkaampaa luoda ensin List ListItem -objekteista. Kun sinulla on tämä lista, voit lisätä ne kaikki kerralla käyttäen insert(int index, List<ListItem> items) -menetelmää. Tämä lähestymistapa vähentää palvelin-asiakasviestintää, parantaen kokonaiseffektiivisyyttä. Yksityiskohtaiset ohjeet tästä ja muista parhaista käytännöistä webforJ-arkkitehtuurissa löydät Asiakkaan/Palvelimen vuorovaikutus.
Kohteiden poistaminen
-
Kohteen poistaminen:
- Poistaaksesi kohteen listasta, käytä
remove(int index)tairemove(Object key)-menetelmää.
- Poistaaksesi kohteen listasta, käytä
-
Kaikkien kohteiden poistaminen:
- Voit poistaa kaikki kohteet listasta käyttämällä
removeAll().
- Voit poistaa kaikki kohteet listasta käyttämällä
Kohteiden valitseminen
Kaikki listatyypit toteuttavat SelectableList-rajapinnan. Tämä rajapinta mahdollistaa useita erilaisia tapoja valita nykyinen ListItem.
Tietyn ListItem:n kanssa
select(ListItem item) ottaa ListItem:n parametrina valitsemiseksi.
List demoList = new List();
ListItem demoItem = new ListItem("demo","Demo Item");
demoList.add(demoItem);
demoList.select(demoItem);
Tietyn ListItem:n avaimen kanssa
selectKey(Object key) ottaa avaimen ListItem:ille parametrina valitsemiseksi.
List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey("demo");
Tietyn ListItem:n indeksin kanssa
selectIndex(int index) ottaa indeksin ListItem:lle parametrina valitsemiseksi.
List demoList = new List();
demoList.add("demo","Demo Item");
demoList.selectKey(0);
Muut listatoiminnot
-
Kohteiden käyttämiseen ja päivittämiseen:
- Käyttääksesi kohteita avaimen tai indeksin avulla, käytä
getByKey(Object key)taigetByIndex(int index). - Voit päivittää kohteen tekstiä käyttämällä
setText(String text)-menetelmääListItem-luokassa.
- Käyttääksesi kohteita avaimen tai indeksin avulla, käytä
-
Tietojen noutaminen listasta:
Listojen läpikäyminen
Kaikki listakomponentit toteuttavat Java Iteratable -rajapinnan, joka tarjoaa tehokkaan ja intuitiivisen tavan käydä läpi listan sisältöä. Tämän rajapinnan avulla voit helposti iteroida jokaisen ListItem:n läpi, mikä tekee yksinkertaiseksi käyttää, muokata tai suorittaa toimintoja jokaiselle kohteelle pienellä vaivalla. Iterable-rajapinta on standardimalli Java-kielellä, mikä varmistaa, että koodisi on tuttua ja ylläpidettävää mille tahansa Java-kehittäjälle.
Alla olevassa koodinpätkässä esitetään 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
Kaikilla listakomponenteilla on integroitu hakukenttä, joka suodattaa kohteet niiden tekstin perusteella. Kenttä on oletuksena poissa käytöstä. Käytä getSearch() -menetelmää päästäksesi hakukonfigurointiin, sitten setFieldVisible(true) näyttääksesi kentän komponentin listan yläosassa.
ComboBox comboBox = new ComboBox("Hedelmät");
comboBox.insert("Omena", "Banaani", "Kirsikka", "Aprikos", "Ananas");
comboBox.getSearch()
.setFieldVisible(true)
.setPlaceholder("Hae hedelmiä")
.setEmptyMessage("Ei hedelmiä löytynyt");
Näytä koodi
- ListSearchView.java
Suodatus piilottaa vain ne kohteet, jotka eivät täsmää. Kohteiden indeksit ja nykyinen valinta pysyvät koskemattomina, joten getSelectedIndex() viittaa edelleen täydelliseen listaan, ei nykyisin näkyviin kohteisiin.
Hakukenttä voidaan piilottaa jälleen käyttämällä setFieldVisible(false).
Kentän konfigurointi
-
setPlaceholder()asettaa hakukentän paikkamerkkitekstin. Oletus onHae. -
setEmptyMessage()asettaa viestin, joka näytetään, kun haku ei palauta tuloksia. Oletus onEi näyttöön osoitettavaa tietoa.
Jokaiselle asetukselle on vastaava getter: isFieldVisible(), getPlaceholder(), getEmptyMessage(), ja getTerm().
Suodatus koodista
setTerm() asettaa haun termin ja suodattaa listan. Se toimii riippumatta siitä, onko kenttä näkyvissä vai ei, joten lista voidaan suodattaa näyttämättä hakukäyttöliittymää.
listBox.getSearch().setTerm("omena");
getTerm() ja hakukenttäKirjoittaminen hakukenttään ei kirjoita termiä takaisin konfigurointiin. getTerm() palauttaa viimeisen arvon, joka on annettu setTerm()-menetelmälle, ei sitä, mitä käyttäjä on kirjoittanut.
Jaetut listan ominaisuudet
Otsikko
Kaikille listakomponenteille voidaan määrittää otsikko, joka on kuvaava teksti tai otsikko, joka liittyy komponenttiin. Otsikot tarjoavat lyhyen selityksen tai kehotuksen auttaa käyttäjiä ymmärtämään kyseisen listan tarkoituksen tai odotettavan valinnan. Käytettävän helppouden lisäksi listan otsikoilla on tärkeä rooli myös esteettömyydessä, mahdollistaen ruudunlukijoiden ja apuvälineiden tarjoavan tarkkaa tietoa ja helpottamaan näppäimistön navigointia.
Aputeksti
Jokainen List-komponentti voi näyttää aputekstiä listan alla käyttämällä setHelperText()-menetelmää. Tämä aputeksti tarjoaa lisäkontekstia tai selityksiä saatavilla olevista vaihtoehdoista, varmistaen, että käyttäjillä on tarvittava tieto tietoisien valintojen tekemiseen.
Vaakasuuntainen kohdistus
Kaikki listakomponentit toteuttavat HasHorizontalAlignment-rajapinnan, mikä antaa sinulle hallinnan tekstin ja sisällön kohdistuksessa komponentin sisällä.
Käytä setHorizontalAlignment()-menetelmää asettaaksesi kohdistuksen:
HorizontalAlignment.LEFT(oletus)HorizontalAlignment.MIDDLEHorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);
Hanki nykyinen kohdistus:
HorizontalAlignment alignment = listBox.getHorizontalAlignment();
Laajennukset
Kaikki webforJ:n listakomponentit toteuttavat myös HasExpanse -rajapinnan, mikä mahdollistaa komponentin kokonaiskoon ja visuaalisen painon säätämisen. Tämä on hyödyllistä komponentin mukauttamiseksi erilaisiin käyttöliittymäkonteksteihin, kuten lomakkeisiin, dialogeihin, sivupalkkeihin jne.
Käytä setExpanse()-menetelmää asettaaksesi laajennustason. Vaihtoehtoina ovat:
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(oletus)Expanse.LARGEExpanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);
Voit noutaa nykyisen asetuksen käyttäen:
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.