MaskedNumberField
MaskedNumberField on tekstikenttä, joka on suunniteltu jäsennellylle numeeriselle syötteelle. Se varmistaa, että numerot on muotoiltu johdonmukaisesti määritellyn maskin mukaan, mikä tekee siitä erityisen hyödyllisen talouslomakkeissa, hinnoittelukentissä tai missä tahansa syötteessä, jossa tarkkuus ja luettavuus ovat tärkeitä.
Tämä komponentti tukee numeromuotoilua, desimaalien/ryhmittelymerkkien lokalisointia sekä valinnaisia arvorajoituksia, kuten vähimmäisiä tai enimmäisiä.
Perusteet
MaskedNumberField voidaan instansioida parametreilla tai ilman. Se tukee alkuperäisen arvon, etiketin, paikan pidikkeen ja tapahtumakuuntelijan asettamista, joka reagoi arvojen muutoksiin.
Tämä demo esittelee Vinkkilaskuria, joka käyttää MaskedNumberField intuitiiviseen numeeriseen syöttöön. Yksi kenttä on määritetty hyväksymään muotoiltu laskun määrä, kun taas toinen tallentaa kokonaissumman tipin prosenttimäärän. Molemmat kentät käyttävät numeerisia maskeja varmistaakseen johdonmukaisen ja ennustettavan muotoilun.
Näytä koodi
- Java
Maskisäännöt
MaskedNumberField käyttää maskimerkkijonoa ohjaamaan, kuinka numeerinen syöte muotoillaan ja näytetään.
Jokainen merkki maskissa määrittää erityisen muotoilukäyttäytymisen, mikä mahdollistaa tarkan hallinnan siitä, kuinka numerot näkyvät.
Maskimerkit
| Merkki | Kuvaus |
|---|---|
0 | Korvataan aina digillä (0–9). |
# | Estää alkavat nollat. Korvataan täyttömerkillä desimaalipisteen vasemmalla puolella. Jälkimmäiset merkit korvataan tyhjällä tai nollalla. Muuten korvataan digillä. |
, | Käytetään ryhmittelyerottimena (esim. tuhannet). Korvataan täyttömerkillä, jos mitään numeroita ei ole ennen sitä. Muuten näkyy pilkku. |
- | Näyttää miinusmerkin (-), jos luku on negatiivinen. Korvataan täyttömerkillä, jos positiivinen. |
+ | Näyttää + positiivisille tai - negatiivisille lukuille. |
$ | Aina tuloksena dollari-merkki. |
( | Lisää vasemman sulku ( negatiivisille arvoille. Korvataan täyttömerkillä, jos positiivinen. |
) | Lisää oikean sulku ) negatiivisille arvoille. Korvataan täyttömerkillä, jos positiivinen. |
CR | Näyttää CR negatiivisille luvuilla. Näyttää kaksi välilyöntiä, jos luku on positiivinen. |
DR | Näyttää CR negatiivisille luvuilla. Näyttää DR positiivisille luvuilla. |
* | Lisää tähden *. |
. | Merkitsee desimaalipistettä. Jos tuloksessa ei näy numeroita, korvataan täyttömerkillä. Desimaalin jälkeen täyttömerkkejä käsitellään väliin. |
B | Aina muuttuu väliksi. Mikä tahansa muu literäärinen merkki näytetään sellaisenaan. |
Joidenkin yllä olevien merkkien voi esiintyä useammin kuin kerran maskissa muotoilua varten. Näitä ovat -, +, $ ja (. Jos jokin näistä merkeistä on läsnä maskissa, ensimmäinen, joka tulee vastaan siirretään viimeiseen kohtaan, jossa # tai , korvattiin täyttömerkillä. Jos sellaista sijaintia ei ole, kaksoismerkki jää paikalleen.
Maski kentässä ei pyöristä. Esimerkiksi, kun syötät arvon kuten 12.34567 kenttään, joka on maskattu ###0.00, saat 12.34.
Ryhmittely- ja desimaalierottimet
MaskedNumberField tukee ryhmittely- ja desimaalimerkkien muokkaamista, mikä helpottaa numeromuotoilun sovittamista eri paikallisiin tai liiketoimintaan liittyviin käytäntöihin.
- Ryhmittelyerotin käytetään visuaalisesti erottamaan tuhannet (esim.
1,000,000). - Desimaalierotin merkitsee osaa luvusta (esim.
123.45).
Tämä on hyödyllistä kansainvälisissä sovelluksissa, joissa eri alueilla käytetään eri merkkejä (esim. . vs ,).
field.setGroupCharacter("."); // esim. 1.000.000
field.setDecimalCharacter(","); // esim. 123,45
Oletuksena MaskedNumberField käyttää ryhmittely- ja desimaalierottimia sovelluksen nykyisen paikallisen asetuksen perusteella. Voit ylittää ne milloin tahansa käyttämällä annettuja asettimia.
Negoitava
MaskedNumberField tukee vaihtoehtoa, joka ohjaa, sallitaanko negatiiviset numerot.
Oletuksena negatiiviset arvot kuten -123.45 ovat sallittuja. Estääksesi tämän, käytä setNegateable(false), jotta syöte rajoittuu vain positiivisiin arvoihin.
Tämä on hyödyllistä liiketoimintaskenaarioissa, joissa arvojen, kuten määrien, kokonaismäärien tai prosenttien, on aina oltava ei-negatiivisia.
field.setNegateable(false);
Kun negatable on asetettu arvoon false, kenttä estää kaikki yritykset syöttää miinusmerkkiä tai muuten syöttää negatiivisia arvoja.
Näytä koodi
- Java
Minimi- ja maksimivarot
MaskedNumberField tukee numeeristen rajojen asettamista käyttämällä setMin() ja setMax().
Nämä rajoitukset auttavat varmistamaan, että käyttäjän syöte pysyy voimassa olevassa, odotetussa alueessa.
-
Vähimmäisarvo
KäytäsetMin()määrittääksesi alhaisimman hyväksyttävän numeron:field.setMin(10.0); // Vähimmäisarvo: 10Jos käyttäjä syöttää numeron tämän rajan alapuolella, sitä pidetään virheellisenä.
-
Maksimimäärä
KäytäsetMax()määrittääksesi korkeimman hyväksyttävän numeron:field.setMax(100.0); // Maksimimäärä: 100Arvot tämän rajan yläpuolella merkitään virheellisiksi.
Arvon palauttaminen
MaskedNumberField tukee palautusominaisuutta, joka palauttaa kentän arvon määriteltyyn tilaan.
Tämä voi olla hyödyllistä, kun käyttäjien on peruttava muutoksia, palautettava vahingossa tehtyjä muokkauksia tai palattava tunnettuun oletusarvoon.
Ottaaksesi tämän toiminnon käyttöön, määritä kohdearvo käyttämällä setRestoreValue().
Kun tarpeen, kenttä voidaan nollata ohjelmallisesti käyttämällä restoreValue().
numberField.setRestoreValue(1500.00);
numberField.restoreValue();
Tavat palauttaa arvo
- Ohjelmallisesti käyttämällä
restoreValue() - Näppäimistön kautta, painamalla ESC (tämä on oletuspalautusavain, ellei sitä olla ohitettu)
Palautusarvo on määritettävä erikseen. Jos sitä ei ole määritelty, ominaisuus ei nollaa kenttää.
Näytä koodi
- Java
MaskedNumberFieldSpinner
MaskedNumberFieldSpinner laajentaa MaskedNumberField lisäämällä spinnereitä, jotka antavat käyttäjien lisätä tai vähentää arvoa askelpainikkeiden tai nuolinäppäinten avulla.
Tämä on ihanteellinen syötteille, kuten määrille, hintamuutoksille, arviointikontrolleille tai missä tahansa tilanteessa, jossa käyttäjät tekevät vähittäismuutoksia.
Näytä koodi
- Java
Keskeiset ominaisuudet
-
Askelmuutokset
KäytäsetStep()määrittääksesi, kuinka paljon arvon tulisi muuttua jokaisella pyörityksellä:spinner.setStep(5.0); // Jokainen pyöritys lisää tai vähentää 5 -
Interaktiiviset ohjaimet
Käyttäjät voivat napsauttaa spin-painikkeita tai käyttää näppäimistösyötettä arvon säätämiseen. -
Kaikki ominaisuudet MaskedNumberFieldista
Täysin tukee maskeja, muotoilua, ryhmittely-/desimaalimerkkejä, minimi/maximin rajoja ja palautuslogiikkaa.