Zum Inhalt springen

JTextField-Formatierung


Krain

Empfohlene Beiträge

Hallo, du musst nur einen KeyListener hinzufügen wie unten:

txtDBName.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyTyped(KeyEvent e) {

textfield_keyTyped(e);

}

});

void textfield_keyTyped(KeyEvent e) {

if(txtDBUser.getText() < 10) {

if(e.getKeyCode() != KeyEvent.VK_BACK_SPACE ||

e.getKeyCode() != KeyEvent.VK_DELETE) {

e.consume();

}

}

}

hier wird abgefragt, ob die Länge des Textes 10 Zeichen überschreitet und die eingegeben Zeichen nicht BackSpace oder delete sind. Ist es ein normales Zeichen, dann wird der Buchstabe nicht angenommen.

Du musst dann nur die zweite IF-Abfrage so ändern, dass es für Dich passt, und dann sollte das klappen...

Gruss, Katja

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

ich mache mir in solchen Fällen lieber ein neues Document:

z.B.

public class myDocument extends PlainDocument {

private int maxLength = 9999;

public FixedNumericDocument(int maxLength) {

super();

this.maxLength = maxLength;

public void insertString(int offset, String str, AttributeSet attr)

throws BadLocationException {

if (getLength() + str.length() > maxLength) {

Toolkit.getDefaultToolkit().beep();

return;

} else {

super.insertString(offset, str, attr);

}

In der IF-Abfrage prüft er zuerst, ob der neu einzufügende String nicht mit dem alten zusammen die maLänge uberschreitet, wenn ja machts beep, ansonsten fügt er in ein. Mann kann noch viel mehr an prüfungen einbauen. Das Document hat den Vorteil, halt nur einmal da, mehrfach verwendbar, und hat nicht den Nachteil des KeyListener, denn wenn man da sehr schnell den Text eingibt und wieder löscht, dann kann er schon mal durcheinander kommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo..

mit der neuen api 1.4 wird es noch viel viel einfacher..

da gibt es jetzt ein JFormattedTextField()

und einen MaskFormatter()

du willst 10 Zeichen ok:

MaskFormatter Maske = new MaskFormatter("**********");

JFormattedTextField Eingabe = new JFormattedTextField(Maske);

; die "*" stehen für jedes Zeichen ( ? = Buchstabe, # = Zahl usw )

2 ganze Zeilen..

also dann..

mfg mamamia

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...