DocumentListener

MariusMeier

Mitglied
Hallo zusammen

Folgender Code habe ich:

Code:
public class tfDokumentListener implements DocumentListener {
	
	private JTextField tfListener = new JTextField();
	
	public tfDokumentListener(JTextField tflistener) {
		this.tfListener = tfListener;
	}

	public void insertUpdate(DocumentEvent e) {
		Document doc = (Document)e.getDocument();
		int length = e.getLength();
		int lengtho = e.getOffset();
	      try {
	    	  System.out.println("Dokument Listener: " + doc.getText(0, length));
	    	  System.out.println("Dokument Listener length: " + lengtho);
	    	  Integer.parseInt(doc.getText(lengtho, length));
	      }
	      
	      catch(Exception excp) {
	    	  JOptionPane
				.showMessageDialog(
						new Frame(),
						"Falsche Eingabe!",
						"Fehler", JOptionPane.WARNING_MESSAGE);	  
	      }
	}
	public void removeUpdate(DocumentEvent e) {
	   
	}
	public void changedUpdate(DocumentEvent e) {
	    
	}	
}

wenn ich nun ein TextField mit diesem DocumentListener anmelde, dann funktioniert alles... bzw. ich kann überprüfen ob nur ein Integer eingegeben wurde.... jedoch wie kann ich nun das Textfeld auf einen Standardwert nach dem der Benutzer einen falschen Wert eingegeben hat zurücksetzten? Wie mach ich das ?

MFG Marius Meier
 
Code:
catch(Exception excp) {
    JOptionPane.showMessageDialog(
       new Frame(),
       "Falsche Eingabe!",
       "Fehler", JOptionPane.WARNING_MESSAGE);
    tfListener.setText("123"); 
}

Btw: Warum nennt man ein Textfeld Listener?!
 
Hallo

Merci mal für ne antwort. Mh hab ich jetzt einfach mal so genannt. Aber die Sache funktioniert so noch gar nicht. Es passiert einfach nichts wenn ich das Textfeld mit setText() ändere.... warum ?

MFG Marius Meier
 
Hm, Du hast recht, der Inhalt des Felds lässt sich innerhalb des Listeners so nicht ändern. Passender erscheint mir allerdings sowieso die Verwendung der Klasse DocumentFilter - schau Dir die mal an.
 
Zurück