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