Siirry pääsisältöön

MaskedNumberField

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

MaskedNumberField on tekstinsuli, joka on suunniteltu muotoilemaan numeerisia syötteitä johdonmukaisesti määritellyn maskin perusteella. Se on hyödyllinen taloudellisissa lomakkeissa, hinnoittelukentissä tai missä tahansa syötteessä, jossa tarkkuus ja luettavuus ovat tärkeitä.

Tätä komponenttia voidaan instansioida parametreilla tai ilman. Se tukee numeromuotoilua, desimaalierottimien ja ryhmittelymerkkien lokalisointia sekä valinnaisia arvorajoituksia, kuten minimirajoja tai maksimirajoja. Se tukee myös alkualkua, etikettiä, paikkamerkkiä ja tapahtumakuuntelijaa, joka reagoi arvojen muutoksiin.

Esimerkki alla esittelee Vinkkilaskurin, joka käyttää MaskedNumberField-komponenttia intuitiiviseen numeeriseen syöttöön. Yksi kenttä on konfiguroitu hyväksymään muotoiltu laskumäärä, kun taas toinen tallentaa kokonaislukuvinkin prosenttiosuuden.

Näytä koodi

Maskisäännöt​

MaskedNumberField käyttää maskimerkkijonoa ohjaamaan, kuinka numeerinen syötteet muotoillaan ja esitetään. Jokainen merkki maskissa määrittelee tietyn muotoilutoiminnon, mikä mahdollistaa tarkan hallinnan siitä, miten numerot näkyvät.

Maskien soveltaminen ohjelmallisesti

Jotta numerot voidaan muotoilla aivan samansuuntaisella maskisyntaksilla kentän ulkopuolella, esimerkiksi kun renderöidään tietoja [Table](/docs/components/table/overview), käytä MaskDecorator -työkaluluokkaa.

Maskimerkit​

MerkkiKuvaus
0Korvataan aina numerolla (0–9).
#Estää etunollat. Korvataan täyttömerkillä desimaalipisteen vasemmalla puolella. Viimeisten numeroiden kohdalla korvataan tyhjällä tai nollalla. Muuten korvataan numerolla.
,Käytetään ryhmittelyerottimena (esim. tuhansia). 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 se on positiivinen.
+Näyttää + positiivisille tai - negatiivisille numeroille.
$Aina tuloksena dollari-merkki.
(Lisää vasemman sulkumerkin ( negatiivisille arvoille. Korvataan täyttömerkillä, jos se on positiivinen.
)Lisää oikean sulkumerkin ) negatiivisille arvoille. Korvataan täyttömerkillä, jos se on positiivinen.
CRNäyttää CR negatiivisille numeroille. Näyttää kaksi väliä positiiviselle.
DRNäyttää CR negatiivisille numeroille. Näyttää DR positiivisille numeroille.
*Lisää tähden *.
.Merkitsee desimaalipistettä. Jos tulostuksessa ei ole numeroita, se korvataan täyttömerkillä. Desimaalin jälkeen täyttömerkit käsitellään väleinä.
BMuuttuu aina väliksi. Kaikki muut kirjaimelliset merkit näytetään sellaisinaan.

Suurin osa yllä olevista merkeistä voi esiintyä useamman kerran maskissa muotoilua varten. Näitä ovat -, +, $ ja (. Jos jokin näistä merkit on läsnä maskissa, ensimmäinen kohteeseen liittyvä siirretään viimeiseen kohtaan, jossa # tai , korvattiin täyttömerkillä. Jos tällaista paikkaa ei ole, kaksoismerkki jää paikalleen.

Ei automaattista pyöristystä

Maski kentässä ei PYÖRISTÄ. Esimerkiksi, kun arvoksi asetetaan 12.34567, joka on maskattu ###0.00-maskilla, saadaan tulokseksi 12.34.

Ryhmittely- ja desimaalierottimet​

MaskedNumberField tukee ryhmittely- ja desimaalmerkkien mukauttamista, mikä tekee numeromuotoilusta helppoa erilaisille kulttuurille tai liiketoimintakäytännöille.

  • Ryhmittelyerotin on tarkoitettu visuaaliseen erottamiseen tuhansista (esim. 1,000,000).
  • Desimaalierotin merkitsee numeron murtoluvun osaa (esim. 123.45).

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

field.setGroupCharacter("."); // esim. 1.000.000
field.setDecimalCharacter(","); // esim. 123,45
Oletuskäytös

Oletuksena MaskedNumberField käyttää ryhmittely- ja desimaalierottimia sovelluksen nykyisen kulttuurin mukaan. Voit ohittaa ne milloin tahansa käyttämällä annettuja asettajia.

Negatoitava​

MaskedNumberField tukee asetusta, joka määrittää, sallitaanko negatiivisia numeroita.

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ä liiketoimintakäytännöissä, 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

Minimi- ja maksimiarvot​

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

  • Minimiarvo Käytä setMin() määrittääksesi alhaisin hyväksyttävä luku:

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

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

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

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

    Arvot, jotka ylittävät tämän rajan, merkitään virheellisiksi.

Arvon palauttaminen​

MaskedNumberField tukee palautusominaisuutta, joka nollaa kentän arvon ennalta määriteltyyn tilaan. Tämä voi olla hyödyllistä, kun käyttäjät tarvitsevat muutosten kumoamista, vahingossa tehtyjen muokkausten palauttamista tai paluuta tunnettuun oletusarvoon.

Ota tämä toiminta käyttöön määrittelemällä kohdearvo setRestoreValue() avulla. Kun tarpeen, kenttä voidaan nollata 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 oletus palautusnäppäin ellei sitä ole ohitettu)

Palautusarvo on määriteltävä nimenomaisesti. Jos sitä ei ole määritelty, ominaisuus ei palauta kenttää.

Näytä koodi

MaskedNumberFieldSpinner​

MaskedNumberFieldSpinner laajentaa MaskedNumberField-komponenttia lisäämällä säätöohjaimia, jotka mahdollistavat käyttäjien arvon lisäämisen tai vähentämisen käyttäen askelpainikkeita tai nuolinäppäimiä. Tämä on ihanteellinen syötteille, kuten määrät, hinnoittelusäätö, arviointikontrollit tai minkä tahansa tilanteen, jossa käyttäjät tekevät vähittäismuutoksia.

Näytä koodi

Avainominaisuudet​

  • Askelintegraalit Käytä setStep() määrittääksesi, kuinka paljon arvon pitäisi muuttua jokaisella pyörityksellä:

    spinner.setStep(5.0); // Jokainen pyöritys lisää tai vähentää 5
  • Interaktiiviset ohjaimet Käyttäjät voivat napsauttaa säätöpainikkeita tai käyttää näppäimistösisääntuloa muuttaakseen arvoa.

  • Kaikki ominaisuudet MaskedNumberFieldistä Täydellisesti tukee maskeja, muotoilua, ryhmittely- /desimaalimerkkejä, minimi/max rajoituksia ja palautuslogiikkaa.

Tyylittäminen​

Loading...