问题
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.
回答1:
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.
回答2:
I recommend registering a DocumentListener to your component's document. Therein, you'll listen for DocumentEvents.
来源:https://stackoverflow.com/questions/8721197/java-equivalent-to-c-sharp-textbox-textchanged-event