Siirry pääsisältöön

MaskedNumberField

Avaa ChatGPT:ssä
Varjo dwc-numberfield 24.10
Java API

MaskedNumberField on tekstikenttä, joka on suunniteltu muotoilemaan numeeriset syötteet johdonmukaisesti määritellyn maskin perusteella. Se on hyödyllinen talouslomakkeissa, hinnoittelukentissä tai kaikissa syötteissä, joissa tarkkuus ja luettavuus ovat tärkeitä.

Tätä komponenttia voidaan instanssia parametreilla tai ilman. Se tukee numeroiden muotoilua, desimaali- ja ryhmittelymerkkien lokalisoimista sekä valinnaisia arvorajoituksia, kuten vähimmäis- ja enimmäisarvoja. Se tukee myös alkuarvon, otsikon, paikkamerkin asettamista sekä tapahtumakuuntelijaa, joka reagoi arvojen muutoksiin.

Alla oleva esimerkki esittelee Vinkkilaskurin, joka käyttää MaskedNumberField -komponenttia intuitiiviseen numeeriseen syöttöön. Yksi kenttä on määritetty hyväksymään muotoiltu laskun summa, kun taas toinen sieppaa kokonaissumman tippi prosentteina.

Maskisäännöt​

MaskedNumberField käyttää maskimerkkijonoa hallitsemaan, kuinka numeerinen syöte muotoillaan ja näytetään. Jokainen merkki maskissa määrittää tietyn muotoilukäyttäytymisen, mikä mahdollistaa tarkan hallinnan numeroiden esittämisessä.

Maskien soveltaminen ohjelmallisesti

Jos haluat muotoilla numeroita samalla maskin syntaksilla kentän ulkopuolella, esimerkiksi kun renderöit dataa Taulukossa, käytä MaskDecorator -apuluokkaa.

Maskimerkit​

MerkkiKuvaus
0Aina korvataan numerolla (0–9).
#Vaimentaa johtavat nollat. Korvataan täyttömerkillä desimaalipisteen vasemmalla puolella. Jälkimmäisille numeroille korvataan tilalla tyhjällä tai nollalla. Muussa tapauksessa korvataan numerolla.
,Käytetään ryhmittelyerottimena (esim. tuhanteen). Korvataan täyttömerkillä, jos sen edessä ei ole numeroita. Muussa tapauksessa näytetään pilkku.
-Näyttää miinusmerkin (-), jos numero on negatiivinen. Korvataan täyttömerkillä, jos positiivinen.
+Näyttää + positiivisille tai - negatiivisille numeroille.
$Aina tuloksena dollari-merkki.
(Lisää vasemman sulkumerkin ( negatiivisille arvoille. Korvataan täyttömerkillä, jos positiivinen.
)Lisää oikean sulkumerkin ) negatiivisille arvoille. Korvataan täyttömerkillä, jos positiivinen.
CRNäyttää CR negatiivisille numeroille. Näyttää kaksi tyhjää tilaa, jos numero on positiivinen.
DRNäyttää CR negatiivisille numeroille. Näyttää DR positiivisille numeroille.
*Lisää tähden *.
.Merkitsee desimaalipistettä. Jos tulostuksessa ei näy numeroita, korvataan täyttömerkillä. Desimaalin jälkeen täyttömerkkejä käsitellään tyhjinä.
BAina muuttuu tyhjäksi. Muu kirjain näkyy sellaisenaan.

Osa yllä olevista merkeistä voi esiintyä useita kertoja maskissa muotoilua varten. Näitä ovat -, +, $ ja (. Jos joku näistä merkeistä on läsnä maskissa, ensimmäinen kohdattu siirretään viimeiseen paikkaan, jossa # tai , korvattiin täyttömerkillä. Jos sellaista paikkaa ei ole, kaksoismerkki jää paikalleen.

Ei automaattista pyöristystä

Maski kentässä ei pyöristä. Esimerkiksi, kun sijoitat arvon 12.34567 kenttään, joka on maskattu muodolla ###0.00, saat tulokseksi 12.34.

Ryhmittely- ja desimaalierottimet​

MaskedNumberField tukee ryhmittely- ja desimaalmerkkien mukauttamista, mikä helpottaa numeroiden muotoilua eri paikallisten tai liiketoimintakäytäntöjen mukaan.

  • Ryhmittelyerotin käytetään erottamaan tuhansia visuaalisesti (esim. 1,000,000).
  • Desimaalierotin osoittaa osan numerosta (esim. 123.45).

Tämä on hyödyllistä kansainvälisissä sovelluksissa, joissa eri alueet käyttävät eri merkkejä (esim. . vs ,).

field.setGroupCharacter("."); // esimerkki: 1.000.000
field.setDecimalCharacter(","); // esimerkki: 123,45
Oletuskäyttäytyminen

Oletuksena MaskedNumberField soveltaa ryhmittely- ja desimaalierottimia sovelluksen nykyisen paikallisuuden mukaan. Voit ylikirjoittaa ne milloin tahansa käyttämällä annettuja asetinjatkoja.

Negoituva​

MaskedNumberField tukee vaihtoehtoa hallita, sallitaanko negatiiviset numerot.

Oletuksena negatiiviset arvot, kuten -123.45, ovat sallittuja. Estääksesi tämän, käytä setNegateable(false) rajoittaaksesi syötteen vain positiivisiin arvoihin.

Tämä on hyödyllistä liiketoimintaskenaarioissa, joissa arvojen, kuten määrien, kokonaisten tai prosenttien, on aina oltava ei-negatiivisia.

field.setNegateable(false);

Kun negatable on asetettu false, kenttä estää kaikki yritykset syöttää miinusmerkkiä tai muuten syöttää negatiivisia arvoja.

Minim ja maksimiarvot​

MaskedNumberField tukee numeeristen rajojen asettamista setMin() ja setMax() avulla. Nämä rajoitukset auttavat varmistamaan, että käyttäjän syöte pysyy voimassa olevassa, odotetussa alueessa.

  • Minimiaarvo Käytä setMin() määritelläksesi alhaisimman hyväksyttävän arvon:

    field.setMin(10.0); // Minimaarvo: 10

    Jos käyttäjä syöttää arvon, joka on alle tämän rajan, sitä pidetään voimattomana.

  • Maksimiaarvo Käytä setMax() määritelläksesi korkeimman hyväksyttävän arvon:

    field.setMax(100.0); // Maksimiaarvo: 100

    Arvot tämän rajan yläpuolella merkitään voimattomiksi.

Arvon palauttaminen​

MaskedNumberField tukee palautustoimintoa, joka nollaa kentän arvon ennalta määriteltyyn tilaan. Tämä voi olla hyödyllistä, kun käyttäjät tarvitsevat peruuttaa muutoksia, kumota vahingossa tehtyjä muutoksia tai palata tunnettuun oletusarvoon.

Voit palauttaa tietyn arvon määrittämällä sen setRestoreValue() -menetelmällä. Kun tarpeen, kenttä voidaan nollata ohjelmallisesti käyttämällä restoreValue().

numberField.setRestoreValue(1500.00);
numberField.restoreValue();

Tapoja palauttaa arvo​

  • Ohjelmallisesti käyttäen restoreValue()
  • Näppäimistön kautta, painamalla ESC (tämä on oletusarvoinen palautusnäppäin, ellei ylikirjoitettu)

Jos palautusarvoa ei ole asetettu, sekä restoreValue() että ESC asettavat kenttäarvon null:iksi.

MaskedNumberFieldSpinner​

MaskedNumberFieldSpinner laajentaa MaskedNumberField -komponenttia lisäämällä spinnereitä, jotka mahdollistavat käyttäjien arvon lisäämisen tai vähentämisen askelnappeilla tai nuolinäppäimillä. Tämä on ideaali syöttöön, kuten määrien, hinnoittelun säätöjen, arviointien tai minkä tahansa tilanteen, jossa käyttäjät tekevät vähittäisiä muutoksia.

Keskeiset ominaisuudet​

  • Askelvähennykset Käytä setStep() määrittääksesi, kuinka paljon arvoa pitäisi muuttaa jokaisella spinnauksella:

    spinner.setStep(5.0); // Jokainen spinnaus lisää tai vähentää 5
  • Vuorovaikutteiset ohjaimet Käyttäjät voivat napsauttaa spinnereitä tai käyttää näppäimistösyötettä arvon säätämiseen.

  • Kaikki ominaisuudet MaskedNumberField -komponentista Täydellinen tuki maskeille, muotoilulle, ryhmittely-/desimaalimerkeille, min/max-rajoituksille ja palautuslogiikalle.

Tyylit​

Loading...

Jatka oppimista