0

以前に作成した Java スイング フォームを変更して、JTextFieldキーストロークに応答する を追加するように依頼されました。フォームにテキスト フィールドを追加し、強制的にフォーカスしようとしましたが、成功しませんでした。クリックしても、フォーカスが得られず、テキストを入力することもできません。JPanelテキストを入力すると、文字列変数に保持され、return キーを押すとすぐにメソッドにダンプされるように、(フォームのベースである)キー リスナーを追加しようとしました。

何が起こっているのかを整理するために助けが必要です。フォームは完全に著作権で保護されているため、コードを投稿しませんでした。この問題を回避する方法について、いくつかのアイデアが本当に必要です。

これは、リスナーを追加しようとするコードの部分です。

public void actionPerformed(ActionEvent e) {
    MyButton jb = (MyButton) e.getSource();
    String buttonGetName = jb.getName();

    /* MÉTODO PARA CAPTURA DE ENTRADAS POR TECLADO / LEITOR DE COD BARRAS */
    back.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                barcode.setText(sBarcode);
                System.out.println("sBarcode");
                sBarcode = null;
            } else {
                System.out.println(e.getKeyChar());
                sBarcode = sBarcode + e.getKeyChar();
            }
        }
    }); 

...ボタンの配列でどのボタンが押されたかを読み取るコードがいくつかあります。

4

1 に答える 1

2
  • KeyListenerforをJTextComponents使用しないでください。代わりDocumentDocumentFilter,を使用してくださいDocumentListener(実際の要件によって異なります)

  • KeyListenerは からリッスンするように指定されていません。代わりにSwing JComponents適切なものを使用してくださいListener

  • あらゆるタイプのshort_cuts使用にKeyBindings

于 2012-11-16T11:17:34.053 に答える