Siirry pääsisältöön

MaskedNumberField

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

MaskedNumberField on tekstikenttä, joka on suunniteltu jäsennellyn numeerisen syötteen vastaanottamiseen. Se varmistaa, että numerot muotoillaan johdonmukaisesti määritetyn maskin perusteella, 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, desimaali- ja ryhmittelymerkkejä sekä valinnaisia arvorajoja, kuten vähimmäis- tai enimmäisarvoja.

Perusteet

MaskedNumberField voidaan alustaa parametreilla tai ilman. Se tukee aloitusarvon, etiketin, paikkamerkin ja tapahtumakuuntelijan asettamista reagoimaan arvomuutoksiin.

Tässä demossa esitellään Vinkkilaskuri, joka käyttää MaskedNumberField intuitiivista numeerista syöttöä varten. Yksi kenttä on määritetty hyväksymään muotoiltu laskutusmäärä, kun taas toinen tallentaa kokonaisluvuksi vinkin prosenttiosuuden. Molemmat kentät soveltavat numeromaskia varmistaakseen johdonmukaisen ja ennakoitavan muotoilun.

Näytä koodi

Maskisäännöt

MaskedNumberField käyttää maskimerkkijonoa hallitsemaan, miten numeerinen syöte muotoillaan ja näytetään. Jokainen merkki maskissa määrittää erityisen muotoilukäyttäytymisen, jolloin käyttäjällä on tarkka hallinta numeroiden ulkonäköön.

Maskin soveltaminen ohjelmallisesti

Jos haluat muotoilla numeroita samalla maskisynntaksilla kentän ulkopuolella, esimerkiksi tietojen renduroidessa Table, käytä MaskDecorator -apuluokkaa.

Maskimerkit

MerkkiKuvaus
0Korvataan aina numerolla (0–9).
#Estää ylimääräiset nollat. Korvataan täyttömerkillä desimaalipisteen vasemmalla puolella. Jatkuville numeroille korvataan tilalla tai nollalla. Muuten korvataan numerolla.
,Käytetään ryhmittelyerottimena (esim. tuhansille). Korvataan täyttömerkillä, jos sen edessä ei ole numeroita. Muussa tapauksessa näkyy pilkkuna.
-Näyttää miinusmerkin (-), jos numero on negatiivinen. Korvataan täyttömerkillä, jos positiivinen.
+Näyttää + positiivisille tai - negatiivisille numeroille.
$Aina tuloksena dollari.
(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 välilyöntiä, jos numero on positiivinen.
DRNäyttää CR negatiivisille numeroille. Näyttää DR positiivisille numeroille.
*Lisää tähden *.
.Merkitsee desimaalipistettä. Jos tulosteessa ei näy numeroita, se korvataan täyttömerkillä. Desimaalin jälkeen täyttömerkit käsitellään välilyönteinä.
BAina muuttuu välilyönniksi. Kaikki muut kirjaimelliset merkit näytetään sellaisenaan.

Joidenkin edellä mainittujen merkkien voi esiintyä useammin kuin kerran maskissa muotoilua varten. Näitä ovat -, +, $, ja (. Jos mitään näistä merkeistä on läsnä maskissa, ensimmäinen tavattu siirretään viimeiseen paikkaan, jossa # tai , oli korvattu täyttömerkillä. Jos tällaista paikkaa ei ole, kaksinkertainen merkki jätetään paikalleen.

Ei automaattista pyöristystä

Maski kentässä ei PYÖRISTÄ. Esimerkiksi, kun sijoitat arvon kuten 12.34567 kenttään, joka on maskattu ###0.00, saat 12.34.

Ryhmitys- ja desimaalierottimet

MaskedNumberField tukee ryhmittely- ja desimaalimerkkien mukauttamista, mikä tekee numeeristen muotoilujen sovittamisesta eri paikallisiin tai liiketoimintakäytäntöihin helppoa.

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

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

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

Oletuksena MaskedNumberField soveltaa ryhmittely- ja desimaalierottimia sovelluksen nykyisen paikallisuuden perusteella. Voit koko ajan ylittää ne käyttämällä tarjottuja asettajia.

Negatiiviset arvot

MaskedNumberField tukee vaihtoehtoa hallita, sallitaanko negatiivisten arvojen syöttäminen.

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

Tämä on hyödyllistä liiketoimintaskenaarioissa, joissa arvot kuten määrät, yhteensä tai prosentit 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.

Näytä koodi

Minimum- ja maksimumarvot

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.

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

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

    Jos käyttäjä syöttää arvon, joka on tämän rajan alapuolella, se katsotaan virheelliseksi.

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

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

    Arvot, jotka ovat tämän rajan yläpuolella, merkitään virheellisiksi.

Arvon palauttaminen

MaskedNumberField tukee palautusominaisuutta, joka palauttaa kentän arvon esimäärättyyn tilaan. Tämä voi olla hyödyllistä, kun käyttäjät tarvitsevat peruuttaa muutoksia, palauttaa vahingossa tehtyjä muokkauksia tai palata tunnettuihin oletusarvoihin.

Tämän käyttäytymisen mahdollistamiseksi määritä tavoitearvo käyttäen setRestoreValue(). Tarvittaessa kenttä voidaan palauttaa ohjelmallisesti käyttämällä restoreValue().

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

Tavat palauttaa arvo

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

Palautusarvon on oltava määritelty selkeästi. Jos sitä ei ole määritetty, ominaisuus ei peruuta kenttää.

Näytä koodi

MaskedNumberFieldSpinner

MaskedNumberFieldSpinner laajentaa MaskedNumberField lisäämällä spinnereitä, jotka antavat käyttäjille mahdollisuuden lisätä tai vähentää arvoa käyttämällä vaihepainikkeita tai nuolinäppäimiä. Tämä on ihanteellinen syötteille, kuten määrille, hinnoittelusäätöille, arviointikontrolleille tai mihin tahansa skenaarioon, jossa käyttäjät tekevät asteittaisia muutoksia.

Näytä koodi

Avainominaisuudet

  • Askelinjektiot
    Käytä setStep() määrittääksesi, kuinka paljon arvon pitäisi muuttua jokaisella spinnillä:

    spinner.setStep(5.0); // Jokainen spin lisää tai vähentää 5
  • Interaktiiviset ohjaimet
    Käyttäjät voivat napsauttaa spinner-painikkeita tai käyttää näppäimistösisältöä arvon säätämiseen.

  • Kaikki ominaisuudet MaskedNumberFieldistä
    Täysin tukee maskeja, muotoilua, ryhmittely- ja desimaalimerkkejä, minimi- ja maksimi-rajoja sekä palautuslogiikkaa.

Tyylittely

Loading...