Gå til innhold

Hvordan hindre inntasting av bokstavtaver?


Anbefalte innlegg

Har programmert et lite program som ved hjelp av JOptionPane.showInputDialog får tilført en tallverdi, er det mulig å hindre at bruker skriver inn noe annet en tall(Sperre for bruk av noe annet enn nummertaster)?

Slik at man ikke trenger å ha en løkke som gir tilbakemeldig til bruker at han/hun har tastet inn ugyldige tegn.

Endret av Qwark
Lenke til kommentar
Videoannonse
Annonse

Dersom du kunne tenke deg å leke litt med swing og guikomponenter, kan du Lage en liten ramme med en JTextField instans. Denne kaller du setDocument(...) på. Som argument i dette kallet sender du en instans av AbstractDocument. Dette er fordi alle tekstfelt har et Document-objekt som tar vare på selve teksten som skal vises fram i guiet. La oss si at denne instansen har fått navnet mittAbstrakteDokument.

 

Så må du implementere din egen versjon av klassen DocumentFilter, du lager en klasse som arver DocumentFilter, altså f.eks.

 

public class MittDokFilter extends DocumentFilter

 

Du må implementere de to metodene insertString og replace. Konsuler API'et for hva metodene skal gjøre. Da bare bygger du inn en sjekk på hver karakter i den strengen som skal settes inn, hvor du kontrollerer om det er lovlige karakterer. Hvis variabelen kar inneholder en verdi av typen char (en enkelt bokstav/tegn), ser det slik ut

 

if (Character.isLetter(kar))

 

osv...

 

En instans av MittDokFilter settes som mittAbstrakteDokument sitt filter ved at metoden setDocumentFilter() kalles på mittAbstrakteDokument med den nevnte instansen av MittDokFilter som argument.

 

Dette skulle være alt ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...