每当用户点击不同的组件时,我需要监听器触发,而不仅仅是在按下回车键时。我还需要识别源,因为我有数百个 JTextField,而我必须识别它们的唯一方法是通过数组索引。
我可以从 ActionListener 获取源,但 ActionListener 仅在用户按下回车键时触发。
我可以将 DocumentListener 附加到 JTextField 的关联文档,但似乎没有办法获取对 JTextField 本身的引用。
我怎样才能做到这一点?
我有数百个 JTextField,我必须识别它们的唯一方法是通过数组索引。
使用JTable
而不是数百个JTextField's
我可以从 ActionListener 获取源,但 ActionListener 仅在用户按下回车键时触发。
ActionListener
仅在ENTER key
被按下时触发,并且JTextField
forJFormattedTextField
和JPasswordField
可以将 DocumentListener 附加到 JTextField 的关联文档,但似乎没有办法获取对 JTextField 本身的引用。
从你们每个人Listeners
都可以确定哪个从JComponents
触发此事件
在 Oracle 对How to Write a Document Listener的解释中,您似乎可以在 Document 上放置一个或多个属性。
这是解释中的两行代码。
textField.getDocument().addDocumentListener(new MyDocumentListener());
textField.getDocument().putProperty("name", "Text Field");
好吧,您可以将第二行更改为以下内容:
textField.getDocument().putProperty("index", Integer.toString(index));
稍后在 Document Listener 代码中,您将使用此方法来获取属性。
document.getProperty("index");