Java Swing:使用文档侦听器处理返回键

时间:2013-03-01 16:27:56

标签: java swing jtextcomponent documentlistener

我有一个工作正常的文档监听器。但是,我想为它添加一些功能,以便当用户点击Enter键时,焦点转移到另一个对象。我无法弄清楚如何陷阱。这是我的代码:

txtNum1.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent e) {
                setAnswer(e);
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                setAnswer(e);
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                setAnswer(e);
            }

            private void setAnswer(DocumentEvent e) {
                if (txtNum1.getText().equals("")) {
                    num1 = 0;
                } else {
                    num1 = Integer.parseInt(txtNum1.getText());
                }
                calcAnswer();
                System.out.println(e); //trying to output the event 'Enter'
            }

我可以通过一个关键的监听器来做到这一点,但是在使用这种方法之前我已经在这个网站上被责骂了,所以我试图以正确的方式学习这个。

谢谢!

编辑: 根据下面的建议,我添加了以下代码,但似乎没有任何效果。谁能看到我失踪的东西?谢谢!

/* If the user hits the Enter key, we want the focus to shift to
 * the next text field */
txtNum1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        txtNum2.requestFocus();
    }
});

1 个答案:

答案 0 :(得分:5)

在JTextfield上,只需添加Enter即可捕获ActionListener密钥。当用户输入

时,它将被触发