创建一个扩展 keyListener 的 class

Creating a class that extends keyListener

在我的 java 项目中,我想在几个不同的 class 中检查每个 JTextField 中的输入(使用完全相同的代码)..

现在我一遍又一遍地复制相同的代码,我被建议使用 2 个选项:

  1. 创建一个方法并改为调用该方法。

  2. 创建一个新的 class,它从另一个具有所需方法的 class(我还不知道是哪个)扩展。

我现在使用的代码是:

totalAmount.addKeyListener(new KeyAdapter() {
@Override
    public void keyTyped(KeyEvent arg0) {
    //do something
    }
});

而新的 class 是:

public class Listener extends KeyAdapter {
    public void keyTyped(KeyEvent arg0){
    //do something
    }
}

问题是我不知道我是不是在扩展右边class,以及如何使用我写的新class...

提前致谢!

要用你的钥匙适配器做你想做的事,你会使用

totalAmount.addKeyListener(new Listener());

并且您的密钥适配器代码是正确的。

public class Listener extends KeyAdapter {
    public void keyTyped(KeyEvent arg0){
        //do something
    }
}

要从 JTextField 中获取文本,您可以在 keyAdapter

中使用此代码
System.out.println(totalAmount);

或者,您最好使用文档侦听器。这将由

完成
public class documentListener implements DocumentListener //This is a listener
{
    public void changedUpdate(DocumentEvent e){

    }

    public void removeUpdate(DocumentEvent e){
        int lengthMe = e.getDocument().getLength();
        System.out.println(e.getDocument().getText(0,lengthMe));
    }

    public void insertUpdate(DocumentEvent e){
        int lengthMe = e.getDocument().getLength();
        System.out.println(e.getDocument().getText(0,lengthMe));
    }
}

它会被添加到 JTextField

totalAmount.getDocument().addDocumentListener(new documentListener());