ExAzubi Geschrieben 11. Juni 2002 Teilen Geschrieben 11. Juni 2002 Hi zusammen, ich habe folgendes Problem, und zwar möchte ich, nachdem mehr als 4 Zeichen im JTextField sind, das TextField auf setEditable(false) setzten. Das klappt auch schön, nur wie kann ich, wenn ich Backspace drücke dieses dann wieder auf true setzen. Hier der Code : import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JTextField; /** * @author dvo * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ public class DVTextField extends JTextField implements KeyListener { Dimension prefer; boolean edit; private String str; public DVTextField(String param) { FontMetrics fm = this.getFontMetrics(this.getFont()); prefer = new Dimension(fm.stringWidth(param + "M"), fm.getHeight()); setColumns(4); this.addKeyListener(this); } public Dimension getMaximumSize() { return getPreferredSize(); // return prefer; } public Dimension getMinimumSize() { return getPreferredSize(); // return prefer; } public void keyTyped(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE || this.getText().length() <= 4) { edit = true; } else if (this.getText().length() > 4) { edit = false; } this.setEditable(edit); } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } } Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ExAzubi Geschrieben 11. Juni 2002 Autor Teilen Geschrieben 11. Juni 2002 Hat sich schon erledigt, Abfrage war in falscher Methode. Statt keyTyped hätte dieses in keyPressed gemusst. Kann geschlossen werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.