MaskedTextField
MaskedTextField-komponentti tarjoaa konfiguroitavan tekstinsyötteen, joka pakottaa muotoilusäännöt ja validaation. Se on hyvin soveltuva sovelluksille, jotka vaativat strukturoitua syötettä, kuten rahoitus-, verkkokauppa- ja terveydenhuoltojärjestelmille.
Perusteet
MaskedTextField voidaan alustaa parametreilla tai ilman. Voit määrittää alkuperäisen arvon, etiketti, paikkamerkki-tekstin ja kuuntelijan, jos arvo muuttuu.
MaskedTextField field = new MaskedTextField("Tilin ID");
field.setMask("ZZZZ-0000")
.setHelperText("Maski: ZZZZ-0000 - esimerkiksi: SAVE-2025")
Maskeja koskevat säännöt
MaskedTextField muotoilee tekstinsyötteen käyttäen maskia - merkkijonoa, joka määrittää, mitkä merkit ovat sallittuja kussakin sijainnissa. Tämä varmistaa johdonmukaisen, rakenteellisen syötteen, kuten puhelinnumeroiden, postinumeroiden ja henkilöllisyysnumeroiden muodoissa.
Muotoillaksesi merkkijonoja saman maskisynnin mukaisesti kentän ulkopuolella, esimerkiksi tietojen renderöinnissä Table, käytä MaskDecorator -apuluokkaa.
Tuetut maskimerkit
| Merkki | Kuvaus |
|---|---|
X | Mikä tahansa tulostettava merkki |
a | Mikä tahansa aakkosnumeerinen merkki (suuret tai pienet kirjaimet) |
A | Mikä tahansa aakkosnumeerinen merkki; pienet kirjaimet muunnetaan suuriksi |
0 | Mikä tahansa numero (0–9) |
z | Mikä tahansa numero tai kirjain (suuret tai pienet kirjaimet) |
Z | Mikä tahansa numero tai kirjain; pienet kirjaimet muunnetaan suuriksi |
Kaikkia muita merkkejä maskissa kohdellaan kirjaimellisesti, ja ne on kirjoitettava tarkasti.
Esimerkiksi maski kuten XX@XX vaatii käyttäjää syöttämään @ keskelle.
- Epäpätevät merkit ohitetaan hiljaa.
- Lyhyt syöte täytetään tyhjillä merkeillä.
- Pitkä syöte katkaistaan mahtuakseen maskiin.
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ä käyttäytyy kuin tavanomainen TextField, sallien minkä tahansa tulostettavan syötteen.
Tämä on hyödyllistä, kun haluat varata mahdollisuuden muotoilla ilman tiukkoja merkkisääntöjä.
Näytä koodi
- MaskedTextFieldView.java
Vahvistuskuviot
Vaikka maskit määrittävät syötteen rakenteen, voit yhdistää ne vahvistuskuvioihin pakottaaksesi tarkempia syöttösääntöjä. Tämä lisää ylimääräisen tason asiakaspuolen validointia käyttämällä säännöllisiä lausekkeita.
Käytä setPattern()-metodia soveltaaksesi mukautettua säännöllistä lauseketta:
field.setPattern("[A-Za-z0-9]{10}"); // Pakottaa 10-merkkisen aakkosnumeerisen koodin
Tämä varmistaa, että syöte ei ainoastaan vastaa maskia, vaan noudattaa myös määriteltyä rakennetta, kuten pituutta tai sallittuja merkkejä.
Tämä on erityisen hyödyllistä, kun:
- Maski sallii liikaa joustavuutta
- Halutaan pakottaa tarkka pituus tai tietty muoto (esim. heksadesimaali, Base64, UUID)
Kuvion on oltava voimassa oleva JavaScript-säännöllinen lauseke, kuten RegExp-tyypissä käytetty. Voit löytää lisää tietoa HTML-malliattributin dokumentaatiosta.
Arvon palauttaminen
MaskedTextField sisältää palautustoiminnon, joka nollaa kentän arvon ennalta määriteltyyn tai alkuperäiseen tilaan.
Tämä voi olla hyödyllistä käyttäjän muutosten kumoamisessa tai oletusyhdisteeseen palaamisessa.
field.setRestoreValue("ABC123");
field.restoreValue();
Tapoja palauttaa arvo
- Ohjelmallisesti, kutsumalla
restoreValue() - Näppäimistön kautta, painamalla ESC (tämä on oletusarvoinen palautusavain, ellei sitä ohiteta tapahtumakuuntelijalla)
Voit asettaa palautettavan arvon käyttämällä setRestoreValue(). Jos palautusarvoa ei ole asetettu, kenttä palautuu alkuperäiseen arvoon sen hetkellä, kun se renderöitiin.
Näytä koodi
- MaskedTextFieldRestoreView.java
MaskedTextFieldSpinner
MaskedTextFieldSpinner laajentaa MaskedTextField lisäämällä spinnerikontrollit, jotka antavat käyttäjille mahdollisuuden kiertää ennalta määriteltyjen arvojen luetteloa.
Tämä parantaa käyttäjäkokemusta tilanteissa, joissa syötteen tulisi olla rajoitettu kiinteään käyttökelpoisten vaihtoehtojen joukkoon.
Näytä koodi
- MaskedTextFieldSpinnerView.java
Avainominaisuudet
-
Vaihtoehtoluettelo Täytä spinnereitä käyttökelpoisilla merkkijonoarvoilla käyttämällä
setOptions():spinner.setOptions(List.of("Vaihtoehto A", "Vaihtoehto B", "Vaihtoehto C")); -
Ohjelmallinen kierto Käytä
spinUp()jaspinDown()siirtääksesi vaihtoehtoja:spinner.spinUp(); // Valitsee seuraavan vaihtoehdonspinner.spinDown(); // Valitsee edellisen vaihtoehdon -
Indeksinhallinta Aseta tai hae nykyinen valintaindeksi:
spinner.setOptionIndex(1);int current = spinner.getOptionIndex(); -
Maskiyhteensopivuus Perii täysin kaikki muotoilu-, maskisäännöt ja kuviovahvistuksen
MaskedTextField-komponentista.