ExAzubi Geschrieben 11. Juni 2002 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
ExAzubi Geschrieben 11. Juni 2002 Autor 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
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.