Siirry pääsisältöön

Listat

Avaa ChatGPT:ssä
tiedot

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:

  • ListItem kapseloi ainutlaatuisen avain Object-tyypin ja tekstin String, 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​

vinkki

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​

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​

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 on Hae.

  • setEmptyMessage() asettaa viestin, joka näkyy, kun haku ei palauta tuloksia. Oletusarvo on Ei 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.MIDDLE
  • Alignment.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.NONE
  • Expanse.XSMALL
  • Expanse.SMALL
  • Expanse.MEDIUM (oletus)
  • Expanse.LARGE
  • Expanse.XLARGE
ListBox listBox = new ListBox();
listBox.setExpanse(Expanse.LARGE);

Voit noutaa nykyisen asetuksen käyttämällä:

Expanse current = listBox.getExpanse();

Aiheet​

Jatka oppimista