/ Forside/ Teknologi / Udvikling / Java / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JTextfield virkelig længde vs. reel synl~
Fra : Einar_Petersen
Vist : 1075 gange
41 point
Dato : 06-12-05 15:52

Jeg har en JAVA applikation hvori jeg ønsker at have et JTextField kaldet email.

P.T. Har jeg for designets skyld limiteret feltet til 30 karakterer ved at definere det sådan:

JTextField email = new JTextField (30);

Så kommer det sjove:

"As defined in RFC 2821, the local-part of an e-mail address allows up
to 64 characters maximum and the domain name a maximum of 255 characters
The local-part, "MUST BE treated as case sensitive."

Er der så en super simple måde at afgrænse det synlige område af Jtextfield'et således
at kun 30 karakterer ses ad gangen i gui'en - samtidig som brugeren af gui'en kan skrive en
e-mail addresse bestående af 319 characters.

Eller for den sags skyld enhver anden information i ethvert andet tekstfelt, jeg tænker i helt generelle baner her.

Er der ydermere nogen som ved om hvorvidt @ symbolet skal regnes som en del al local-part eller domain navnet - eller
om @ tegnet slet ikke regnes med i regnestykket når der angives maximum character antal for en adresse?

Mvh.

Einar

P.S. Jeg har kun tildelt et enkelt point - Ved det lyder cheap, men jeg må lige hitte ud af hvordan point systemet virker og om jeg har nogle points, det er meeeeeeeeget længe siden brugeren her blev oprettet. Gider bare ikke at miste de indtastede data grundet en timeout eller lignende, vi kan nok altid finde ud af en deal hvis der svares på spørgsmålet.

 
 
Kommentar
Fra : pmbruun


Dato : 07-12-05 13:04

Argumentet til JTextField siger kun hvor bredt feltet ser ud, det begrænser på ingen måde antallet af tegn, der kan indtastes.

Du har m.a.o. sådan ca. allerede den funktionalitet, du ønsker dig

Det eneste du måske skal er, at teste hvor mange tegn, brugeren faktisk har indtastet, og så give en fejlmeddelelse hvis der er for mange.

Jeg ville nok regne med at "@" medregnes til den totale længde, men ikke til domænenavnet.

Hvis du vil have selve feltet til at begrænse antallet af tegn, der kan indtastes, kan du bruge et JFormattedTextField, men det er næsten stensikkert overflødigt, og vil give dig unødig hovedpine.

Hvorfor vil du overhovedet validere adressen? Hvis det er en allerede eksisterende modtager, så opdager man vel om den er korrekt når man prøver at sende noget til den. Den mest oplagte fejl er jo nok ikke antallet af tegn i adressen, men snarere alle mulige andre tastefejl, så det er nok lidt sjældent, at dit check vil blive relevant.

Du må selvfølgelig validere længden, hvis den er begrænset et andet sted i din applikation - f.eks. i størrelsen på et databasefelt.


Accepteret svar
Fra : pmbruun

Modtaget 41 point
Dato : 07-12-05 13:06

Jeg kan i øvrigt anbefale, at du læser dokumentationen - f.eks. her:

http://java.sun.com/j2se/1.4.2/docs/api/index.html


Godkendelse af svar
Fra : Einar_Petersen


Dato : 08-12-05 09:50

Tak for svaret pmbruun. Og tak for linken, vil kigge nærmere på info.

Mvh.

Einar
                        

Kommentar
Fra : Einar_Petersen


Dato : 08-12-05 10:01

Vedr. længde ville jeg blot være sikker på at hvis jegharetaltforfedtnavnpåminemailadressepludsligdukkedeop@mitindtastningsfeldt.dk så ville adressen blive gemt i det string array hvori informationen proppes, om den er rigtig eller ej er ikke mit problem... :)

Kommentar
Fra : pmbruun


Dato : 08-12-05 10:07

Java har generelt ingen begrænsning på længden af strenge - ud over at de skal kunne være i din computers (virtuelle) memory. Så du behøver normalt ikke bekymre dig om, hvorvidt en streng bliver for lang.

Kommentar
Fra : Einar_Petersen


Dato : 08-12-05 19:28

Nice så er det åg taget af mine skuldre

Kommentar
Fra : Einar_Petersen


Dato : 06-01-06 15:42

Tip til dem der skal lave brugerflade med input, til datoer og lignende overvej at bruge combobox/dropdown i stedet, det sikrer mod forkert indtastning af data.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177413
Tips : 31962
Nyheder : 719565
Indlæg : 6407798
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste