是否有可能发现哪个项目生成了DocumentEvent?像我可以用ActionListener做的事情:
JTextField field = new JTextField("");
field.addActionListener(actionListener);
//inside ActionListener
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() instanceof JTextField) //true
}
Run Code Online (Sandbox Code Playgroud)
我想对DocumentEvent做同样的事情,但似乎不会以同样的方式工作:
JTextField field = new JTextField("");
field.getDocument.addDocumentListener(documentListener);
//inside documentListener
public void insertUpdate(DocumentEvent){
if (arg0.getSource() instanceof JTextField) //false: class is javax.swing.text.PlainDocument
if (arg0.getSource() instanceof MyComponent){
MyComponent comp = (MyComponent)arg0.getSource();
comp.callSpecificMethodUponMyComp();
}
}
Run Code Online (Sandbox Code Playgroud)
答案者应该考虑以下几点: