Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为可以识别源的JTextField创建适当的事件侦听器?_Java_Swing_Listener - Fatal编程技术网

Java 如何为可以识别源的JTextField创建适当的事件侦听器?

Java 如何为可以识别源的JTextField创建适当的事件侦听器?,java,swing,listener,Java,Swing,Listener,我需要侦听器在用户单击其他组件时触发,而不仅仅是在按下enter键时。我还需要识别源代码,因为我有数百个JTextField,识别它们的唯一方法是通过数组索引 我可以从ActionListener获取源代码,但ActionListener仅在用户按下enter键时触发 我可以将DocumentListener附加到JTextField的关联文档,但似乎没有办法获得对JTextField本身的引用 我该怎么做 我有成百上千的JTextField,我唯一能确定 它们是通过数组索引进行的 使用而不是数

我需要侦听器在用户单击其他组件时触发,而不仅仅是在按下enter键时。我还需要识别源代码,因为我有数百个JTextField,识别它们的唯一方法是通过数组索引

我可以从ActionListener获取源代码,但ActionListener仅在用户按下enter键时触发

我可以将DocumentListener附加到JTextField的关联文档,但似乎没有办法获得对JTextField本身的引用

我该怎么做

我有成百上千的JTextField,我唯一能确定 它们是通过数组索引进行的

使用而不是数百个

我可以从ActionListener获取源代码,但是ActionListener 仅当用户按enter键时激发

仅当按下
ENTER键时才会激发,并且

可以将DocumentListener附加到的关联文档 JTextField,但似乎没有一种方法可以获取对的引用 JTextField本身


在Oracle的说明中,为了确定触发此事件的原因,似乎可以在文档上放置一个或多个属性

下面是解释中的两行代码

textField.getDocument().addDocumentListener(new MyDocumentListener());
textField.getDocument().putProperty("name", "Text Field");
你可以把第二行改成这样:

textField.getDocument().putProperty("index", Integer.toString(index));
稍后在文档侦听器代码中,您将使用此方法获取属性

document.getProperty("index");

谢谢,这似乎正好回答了我的问题。我将不得不考虑使用JTAY作为下一个答案。