如何从DocumentListener(DocumentEvent)获取源对象?

Nik*_*ola 3 java swing documentlistener

我有我的课,我已经实施了 DocumentListener

public void removeUpdate( DocumentEvent arg0 ) {
   System.out.println( arg0.getDocument());
}
Run Code Online (Sandbox Code Playgroud)

它会打印出来 javax.swing.text.PlainDocument@49ea903c

有没有可能的方法我得到对象所以我可以获得更改的文本字段的值?目前我只有一个字段,所以我不需要检查,但如果我使用两个或更多,如何知道哪个JTextField已通知听众呢?

JB *_*zet 5

我不确定是否可以从Document获取swing组件.但问题很容易解决:只需在每个文本字段中添加一个不同的侦听器实例,并将文本字段存储在侦听器本身中.

textField1.getDocument().addDocumentListener(new MyDocumentListener(textField1));
textField2.getDocument().addDocumentListener(new MyDocumentListener(textField2));
textField3.getDocument().addDocumentListener(new MyDocumentListener(textField3));
Run Code Online (Sandbox Code Playgroud)

  • 是的,我知道这一点,我希望我可以让我的代码更清晰,就像你可以在 ActionListener 上使用 event.getSource() 一样。谢谢你的回答。 (2认同)