MaskedTextField
MaskedTextField-komponentti tarjoaa konfiguroitavan tekstinsyötön, joka valvoo muotoilusääntöjä ja validointia. Se soveltuu hyvin sovelluksiin, joissa tarvitaan rakenneosia, kuten talous-, verkkokauppa- ja terveydenhuoltojärjestelmissä.
Tätä komponenttia voidaan alustaa parametreilla tai ilman. Voit määrittää alkuarvon, oletustekstin, paikkamerkin sekä kuuntelijan, jos arvo muuttuu.
MaskedTextField field = new MaskedTextField("Tili ID");
field.setMask("ZZZZ-0000")
.setHelperText("Maski: ZZZZ-0000 - esimerkiksi: SAVE-2025")
Maskisäännöt
MaskedTextField muotoilee tekstinsyötön käyttämällä maskia - merkkijonoa, joka määrittää, mitkä merkit ovat sallittuja kussakin paikassa. Tämä varmistaa johdonmukaisen, rakenteisen syötön, kuten puhelinnumerot, postinumerot ja henkilötunnusmuodot.
Jos haluat muotoilla merkkijonoja saman maskisynnin mukaan kentän ulkopuolella, esimerkiksi tietojen renderöinnissä Table, käytä MaskDecorator -apuluokkaa.
Tuetut maskimerkit
| Merkki | Kuvaus |
|---|---|
X | Mikä tahansa tulostettavissa oleva merkki |
a | Mikä tahansa aakkosellinen merkki (isot tai pienet kirjaimet) |
A | Mikä tahansa aakkosellinen merkki; pienet kirjaimet muunnetaan isoiksi |
0 | Mikä tahansa numero (0–9) |
z | Mikä tahansa numero tai kirjain (isot tai pienet kirjaimet) |
Z | Mikä tahansa numero tai kirjain; pienet kirjaimet muunnetaan isoiksi |
Kaikkia muita merkkejä maskissa käsitellään kirjaimellisina ja ne on kirjoitettava tarkasti.
Esimerkiksi, maski kuten XX@XX vaatii käyttäjältä @ merkin syöttämistä keskelle.
- Virheelliset merkit ohitetaan hiljaa.
- Lyhyet syötteet täyteen tilaa.
- Pitkät syötteet katkaistaan maskin mukaisiksi.
Esimerkkejä
field.setMask("(000) 000-0000"); // Esimerkki: (123) 456-7890
field.setMask("A00 000"); // Esimerkki: A1B 2C3 (Kanadan postinumero)
field.setMask("ZZZZ-0000"); // Esimerkki: ABCD-1234
field.setMask("0000-0000-0000-0000");// Esimerkki: 1234-5678-9012-3456
Jos maski sisältää vain X, kenttä toimii kuten tavallinen TextField, salliien minkä tahansa tulostettavan sisäänsyötön.
Tämä on hyödyllistä, kun haluat säilyttää mahdollisuuden muotoilla ilman tiukkoja merkkisääntöjä.
Näytä koodi
- MaskedTextFieldView.java
Vahvistuskuviot
Vaikka maskit määrittelevät syötteen rakenteen, voit yhdistää ne vahvistuskuvioihin tiukempien syöttösääntöjen valvomiseksi. Tämä lisää ylimääräisen kerroksen asiakaspään validoimista käyttäen säännöllisiä lausekkeita.
Käytä setPattern()-metodia soveltaaksesi mukautettua säännöllistä lauseketta:
field.setPattern("[A-Za-z0-9]{10}"); // Pakottaa 10-merkin alfanumeerisen koodin
Tämä varmistaa, että syöte ei vain vastaa maskia, vaan myös noudattaa määriteltyä rakennetta, kuten pituutta tai sallittuja merkkejä.
Tämä on erityisen hyödyllistä, kun:
- Maski sallii liikaa joustavuutta
- Haluat pakottaa tarkan pituuden tai tietyn muodon (esim. hex, Base64, UUID)
Kuvion on oltava voimassa JavaScriptin säännöllinen lauseke, kuten käytetään RegExp-tyypissä. Lisätietoja löytyy HTML -kuvion attribuutin dokumentaatiosta.
Arvon palauttaminen
MaskedTextField sisältää palautusominaisuuden, joka palauttaa kentän arvon ennalta määriteltyyn tai alkuperäiseen tilaan.
Tämä voi olla hyödyllistä käyttäjän tekemien muutosten kumoamisessa tai oletustietojen palauttamisessa.
field.setRestoreValue("ABC123");
field.restoreValue();
Tavat palauttaa arvo
- Ohjelmallisesti, kutsumalla
restoreValue() - Näppäimistön kautta, painamalla ESC (tämä on oletuspaluunäppäin, ellei tapahtumakuuntelija ylikirjoita tätä)
Voit määrittää palautettavan arvon setRestoreValue():llä. Jos palautusarvoa ei ole asetettu, kenttä palautuu alkuperäiseen arvoon renderöintihetkellä.
Näytä koodi
- MaskedTextFieldRestoreView.java
MaskedTextFieldSpinner
MaskedTextFieldSpinner laajentaa MaskedTextField-komponenttia lisäämällä pyörityskontrolleja, jotka antavat käyttäjien selata ennalta määriteltyjen arvojen luetteloa.
Tämä parantaa käyttäjäkokemusta tilanteissa, joissa syötteen pitäisi rajoittua ennalta määriteltyihin kelvollisiin vaihtoehtoihin.
Näytä koodi
- MaskedTextFieldSpinnerView.java
Tärkeimmät ominaisuudet
-
Vaihtoehtoluettelo tukee Täytä pyörityskontrolli kelvollisten merkkijonojen luettelolla käyttäen
setOptions():spinner.setOptions(List.of("Vaihtoehto A", "Vaihtoehto B", "Vaihtoehto C")); -
Ohjelmallinen pyöritys Käytä
spinUp()jaspinDown()siirtyäksesi vaihtoehtojen läpi:spinner.spinUp(); // Valitsee seuraavan vaihtoehdonspinner.spinDown(); // Valitsee edellisen vaihtoehdon -
Indeksinhallinta Aseta tai hae nykyinen valinnan indeksi:
spinner.setOptionIndex(1);int current = spinner.getOptionIndex(); -
Maskin yhteensopivuus Perii täysin kaikki muotoilut, maskisäännöt ja kuvion validoinnin
MaskedTextField-komponentilta.