创建一个扩展keyListener的类

时间:2015-12-14 18:25:44

标签: java swing override listener extends

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

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

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

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

  3. 我现在使用的代码是:

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

    新课程是:

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

    问题是我不知道我是否正在扩展正确的课程,以及如何使用我写的新课程......

    提前致谢!

1 个答案:

答案 0 :(得分:4)

要使用密钥适配器执行您想要的操作,您可以使用

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());