当前位置: 首页 > 面试题库 >

可以实例类型的DocumentListener

汪德明
2023-03-14
问题内容

我需要这样做:将值更改侦听器更改为JTextField

我想Condemwnci的解决方案,但我得到的是错误的路线:
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方法,而不是全部在同一行中完成。


问题答案:

两种添加a的方法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();
            }
        });
    }
}


 类似资料:
  • 问题内容: 我需要这样做:将值更改侦听器更改为JTextField 我想Condemwnci的解决方案,但我得到的是错误的路线: 在我的情况是: 就我而言,我想更新Jtable中的行,所以我的方法将是这样的: 我在Linux ubuntu 11.10上使用Eclipse(如果有的话)。 编辑: 我不明白为什么,但是它可以通过以下方式工作: 然后改写Implements方法,而不是全部在同一行中完成

  • 问题内容: 是否可以在Java中以反射方式实例化泛型?使用此处描述的技术,由于类标记不能通用,我会遇到错误。请看下面的例子。我想实例化一些实现Creator的Creator子类。实际的类名作为命令行参数传递。这个想法是为了能够在运行时指定Creator的实现。还有另一种方法可以完成我在这里要做的事情吗? 编辑:我喜欢Marcus的方法,因为它是最简单,最实用的方法,不会绕开整个泛型的东西。我可以在

  • 问题内容: 我的问题是这样的: 为什么不能使用类Class的new T()和newInstance()实例化泛型? 问题答案: 您需要使用反射(),因为在编译时需要链接其构造函数的类是未知的。因此,编译器无法生成链接。

  • 问题内容: 为了重用一些定义为不同类的实例方法的现有代码,我想做些类似的事情: 但这导致: TypeError:未绑定方法hello()必须以Foo实例作为第一个参数调用(取而代之的是Bar实例) 这样的事情可能吗? 我应该很清楚,我知道这是一个坏主意。显然,真正的解决方案是重构。我只是想必一定有办法,事实证明是有办法的。 感谢您的评论。 问题答案: 看起来像这样: 您好,我是酒吧。 我想我需要阅

  • 给定一个具有用于初始化的帮助器方法的类: 是否可以从\u int方法注释

  • 实例类型:(T2.Micro,T2.Small,C4.Large...)下面列出的内容:http://docs.aws.amazon.com/awsec2/latest/userguide/instance-types.html 我已经浏览了客户和服务的文档,但我找不到任何接近的东西。我甚至还没有找到一个列出其他碰巧表示所有实例类型的方法。 有人对Boto3有更多的经验吗?