Zum Inhalt springen

JTextField-Formatierung


Empfohlene Beiträge

Geschrieben

Hi

Wie bekomme ich den Rahmen des JTextField weg?

Wie kann ich ein JTextField so formatieren, dass nur eine bestimmte Anzahl an Zeichen eingegeben werden kann - bzw. sogar, dass man nur Ziffern oder bestimmteZeichen angeben kann?

Danke im voraus

Geschrieben

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

Geschrieben

Tach.

Um den Rand eines JTextField wegzubekommen mach einfach folgendes:

...

JTextField txtField = new JTextField();

txtField.setBorder(BorderFactory.createEmptyBorder());

...

Das sollte es eigentlich gewesen sein...

so long

schlemm

Geschrieben

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.

Geschrieben

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

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...