Java equivalent to C# TextBox TextChanged event

Ari picture Ari · Jan 4, 2012 · Viewed 9.2k times · Source

in C# there is an event for textboxes as follows

private void fooText_TextChanged(object sender, EventArgs e)
{
    //do something 
}

the code in the fooText_TextChanged is fired once the text within the textbox is altered.

What is the java equivalent to this? Or how can something similar to this be achieved in java?

Thanks for any feedback/help/advice.

Answer

Hovercraft Full Of Eels picture Hovercraft Full Of Eels · Jan 4, 2012

For Swing, If you wanted to be notified after the text component's text had changed, you'd use a DocumentListener that was added to the JTextComponent's Document. e.g.,

  JTextField myField = new JTextField();

  myField.getDocument().addDocumentListener(new DocumentListener() {

     public void removeUpdate(DocumentEvent e) {
        // TODO add code!

     }

     public void insertUpdate(DocumentEvent e) {
        // TODO add code!

     }

     public void changedUpdate(DocumentEvent e) {
        // TODO add code!

     }
  });

If on the other hand, you wanted to check text before it has been committed to the text component, you'd add a DocumentFilter to the JTextComponent's Document.