0

問題なく動作するドキュメント リスナーがあります。ただし、ユーザーが 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();
    }
});
4

1 に答える 1

5

JTextfield では、.Enterを追加するだけでキーをトラップできますActionListener。ユーザーが入力すると起動されますenter

于 2013-03-01T16:32:04.650 に答える