可以实例化DocumentListener类型

我需要这样做: Value Change Listener to JTextField

我正在尝试使用Condemwnci的解决方案,但是我在行中收到了错误: textField.getDocument().addDocumentListener(new DocumentListener()在我的例子中是textField.getDocument().addDocumentListener(new DocumentListener()jtxtfBuscarInv.getDocument().addDocumentListener(new DocumentListener()

在我的情况下,我想在Jtable中更新行,所以我的方法将是这样的: ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));

我在Linux上,ubuntu 11.10,如果重要的话,使用Eclipse。


编辑:

我不明白为什么,但它的工作原理如下:

 textField.getDocument().addDocumentListener(this); 

然后重写implements方法,而不是在同一行中完成所有操作。

添加DocumentListener的两种方法应该是完全相同的。 下面的示例列出了每个事件的DocumentListener.class类型的所有侦听器。 显而易见的是DocumentListeners本身,而匿名内部类具有(依赖于实现)名称DocumentListeners$1 。 两者都实现了DocumentListener接口。 其他是典型文本组件维护的一部分。 请注意,显示了两个副本,每个副本添加一个。

安慰:

 javax.swing.text.JTextComponent$InputMethodRequestsHandler@5090d8ea
 DocumentListeners $ -1 @ 559113f8
 DocumentListeners [,0,0,128x38,布局= java.awt.FlowLayout中,alignmentX = 0.0,alignmentY = 0.0,边界=,旗帜= 9,MAXIMUMSIZE =,=的minimumSize,首选大小=]
 javax.swing.plaf.basic.BasicTextUI$UpdateHandler@27b62aab
 javax.swing.text.DefaultCaret$Handler@28ab54eb

 javax.swing.text.JTextComponent$InputMethodRequestsHandler@5090d8ea
 DocumentListeners $ -1 @ 559113f8
 DocumentListeners [,0,0,128x38,布局= java.awt.FlowLayout中,alignmentX = 0.0,alignmentY = 0.0,边界=,旗帜= 9,MAXIMUMSIZE =,=的minimumSize,首选大小=]
 javax.swing.plaf.basic.BasicTextUI$UpdateHandler@27b62aab
 javax.swing.text.DefaultCaret$Handler@28ab54eb

码:

 import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.AbstractDocument; /** @see http://stackoverflow.com/questions/8283067 */ public class DocumentListeners extends JPanel implements DocumentListener { JTextField jtf = new JTextField("StackOverflow!"); public DocumentListeners() { this.add(jtf); jtf.getDocument().addDocumentListener(this); jtf.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { print(e); } @Override public void removeUpdate(DocumentEvent e) { print(e); } @Override public void changedUpdate(DocumentEvent e) { print(e); } }); } private void print(DocumentEvent e) { AbstractDocument ad = (AbstractDocument) jtf.getDocument(); for (DocumentListener dl : ad.getListeners(DocumentListener.class)) { System.out.println(dl); } } @Override public void insertUpdate(DocumentEvent e) { print(e); } @Override public void removeUpdate(DocumentEvent e) { print(e); } @Override public void changedUpdate(DocumentEvent e) { print(e); } private void display() { JFrame f = new JFrame("DocumentListeners"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(this); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new DocumentListeners().display(); } }); } }