我需要每当用户单击不同的组件时触发监听器,而不仅仅是在按下 Enter 键时触发。我还需要识别源,因为我有数百个 JTextField,而识别它们的唯一方法是通过数组索引。
我可以从 ActionListener 获取源代码,但 ActionListener 仅在用户按下 Enter 键时才会触发。
我可以将 DocumentListener 附加到 JTextField 的关联文档,但似乎没有办法获取对 JTextField 本身的引用。
我该怎么做?
最佳答案
在 Oracle 解释中 How to Write a Document Listener ,看来您可以在文档上放置一个或多个属性。
这里有两行代码的解释。
textField.getDocument().addDocumentListener(new MyDocumentListener());
textField.getDocument().putProperty("name", "Text Field");
那么,您可以将第二行更改为如下所示:
textField.getDocument().putProperty("index", Integer.toString(index));
稍后在文档监听器代码中,您将使用此方法来获取属性。
document.getProperty("index");
关于java - 如何为 JTextField 创建一个可以识别源的正确事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14077572/