是否还有类似于EventListener的event.getSource? 我试图改变一个JTextField的颜色,其中文本正在改变。 这是我的DocumentListener:
DocumentListener posluchac = new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
warn(e);
}
public void removeUpdate(DocumentEvent e) {
warn(e);
}
public void insertUpdate(DocumentEvent e) {
warn(e);
}
public void warn(DocumentEvent e) {
txtName.setBackground(Color.WHITE);
txtSurname.setBackground(Color.WHITE);
txtPersonalNumber.setBackground(Color.WHITE);
txtDateOfBirth.setBackground(Color.WHITE);
}
};
如果DocumentListener没有.getSource()
之类的内容。怎么做?
答案 0 :(得分:4)
你是对的,没有getSource()
和其他一些听众一样,但是你可以使用Document类的putProperty()
和getProperty()
来实现你想要的。
你可以做到
JTextField jTextField = new JTextField("Text 1");
jTextField.getDocument().putProperty("parent", jTextField);
和
稍后在DocumentListener的事件中,您可以像这样获取父
JTextField textField = (JTextField) e.getDocument().getProperty("parent");
其中e是DocumentEvent