如何为可识别源的JTextField创建正确的事件侦听器?

时间:2012-12-29 00:38:14

标签: java swing listener

每当用户点击不同的组件时,我都需要触发器,而不仅仅是在按下回车键时。我还需要识别源代码,因为我有数百个JTextField,我必须通过数组索引来识别它们。

我可以从ActionListener获取源代码,但只有当用户按下回车键时才会触发ActionListener。

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

我该怎么做?

2 个答案:

答案 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");