~Java4Beginners~
~Java4Beginners~

DocumentListener

Den Documentlistener verwenden wir immer, wenn wir in Textfeldern unterwegs sind. Der DocumentListener reagiert auf
  • insert
  • remove
  • changed
Um ein Textbedienelement dem Documentlistener hinzuzufügen, müssen wir aus dem entsprechenden Element erst das Document auslesen und dieses dann dem DocumentListener hinzufügen.

    textfeld.getDocument().addDocumentListener(xxx);
Wir haben nun 3 Möglichkeiten, wie wir mit dem Documentlistener verfahren.

Documentlistener der Klasse implementieren


public class Umsatzsteuerrechner_gui_zus extends JFrame
        implements DocumentListener
Durch die Vererbung des Interfaces in unsere Klasse befinden sich die zu überschreibenden Klassen innerhalb unserer Klasse.

  @Override
  public void insertUpdate(DocumentEvent e) 
  {
    pruefeEingabe(e);  
  }
  /**
   * Documentlistener
   * @param e Auslösendes DocumentEvent
   */
  @Override
  public void removeUpdate(DocumentEvent e) 
  {
    pruefeEingabe(e); 
  }
  /**
   * Documentlistener
   * @param e Auslösendes DocumentEvent
   */
  @Override
  public void changedUpdate(DocumentEvent e) 
  {
    pruefeEingabe(e); 
  }
Das Bedienelement wird in dieser Variante wie folgt zugewiesen.

    textfeld.getDocument().addDocumentListener(this);
Um zu ermitteln, welches Bedienelement den DocumentListener aufgerufen hat, können wir den übergebenen Paramenter DocumentEvent e verwenden. Wir vergleichen e mit unseren hinzugefügt Elementen und prüfen so, welches Bedienelement für den Aufruf verantwortlich war.

    if (e.getDocument() == jtf_ust[0].getDocument())
    {
        Anweisungen . . .
    }

DocumentListener als anonyme innere Klasse oder Lambdas

Wir können beim DocumentListener bei der Zuweisung auch anonyme innere Klassen oder Lambdas verwenden. Da wir allerdings 3 Methoden aus der Interface-Klasse DocumentListener überschreiben müssen, wäre dies der Übersichtlichkeit nicht verträglich.
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-07-11