0

課題を与えられましたが、Java はまったくの初心者です (C++ と Python で 2 年間プログラミングしています)。

そこで、私たちは GUI を行っており、基本的に JFrame を拡張し、いくつかのフィールドを追加しました。

「テキスト 1」と「テキスト 2」という名前のフィールドがあるとします。ユーザーがテキスト1にカーソルを置いてEnterキーを押すと、フォーカスがテキスト2に移動します。追加しようとしました

private JTextField textfield1() {

    textfield1 = new JTextField();
    textfield1.setPreferredSize(new Dimension(200, 20));

    textfield1.addActionListener(
                           new ActionListener() {
                        public void actionPerformed(ActionEvent e) {

                            textfield1text = textfield1.getText().trim();
                            textfield1.setText(textfield1text);
                            System.out.println(textfield1text);

                            textfield1.requestFocus();
                        }
                    });

    return textfield1;
}

しかし、それはまったく機能しません。

requestFocus は推奨されていないことに気付きました。代わりに、requestFocusWindows を使用する必要があります。しかし、私もそれを試しました。いくつかの読書では、キーボードアクションとリスナーを実行する必要があるようです? でも先生は1行だけでいいって言ってた…

4

2 に答える 2

3

さて、あなたは を持ってtextfield1.requestFocus()いますが、あなたの説明は が必要であることを暗示していますtextfield2.requestFocus()。(それは2です)。

于 2011-02-11T04:09:08.130 に答える
2

別のオプションを使用することもできます:

textField1.transferFocus();

このように、フォーム上の次のコンポーネントの名前を知る必要はありません。

于 2011-02-11T05:07:59.547 に答える