6

Java tic-tac-toe ゲームを作成しました。特定の条件で Enter キーが押されたときにメソッドを実行する方法を知りたいと思います。例を以下に示します...

if(/*condition is met*/){
     //keyListener
}
4

3 に答える 3

7

「Enter」キーをトラップする場所に応じて、ActionListener(テキスト コンポーネントやボタンなどのコンポーネントで) を使用するか、キー バインドをコンポーネントにアタッチすることができます。

public class MyPanel extends JPanel {

    public MyPanel() {

        InputMap im = getInputMap(WHEN_FOCUSED);
        ActionMap am = getActionMap();

        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter");

        am.put("onEnter", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // Enter pressed
            }
        });

    }

}

これは、フォーカスされているコンポーネントに依存します。

于 2012-10-24T03:24:50.127 に答える
4

1 つの方法は、KeyListenerインターフェイスとその主要なイベント メソッドを実装することです。例えば、

public class MyClass  implements KeyListener {
    public void keyTyped(KeyEvent e) {
        // Invoked when a key has been typed.
    }

    public void keyPressed(KeyEvent e) {
        // Invoked when a key has been pressed.
        if (e.getKeyCode() == KeyEvent.VK_ENTER && yourOtherCondition) {
            myMethod();
        }
    }

    public void keyReleased(KeyEvent e) {
        // Invoked when a key has been released.
    }
}

次に、このリスナーを追加します

myComponent.addKeyListener(new MyClass());

または、必要に応じて、

myComponent.addKeyListener(new KeyListener() {
    public void keyPressed(KeyEvent e) { /* ... */ }

    public void keyReleased(KeyEvent e) { /* ... */ }

    public void keyTyped(KeyEvent e) { /* ... */ }
});

詳しくはこちらをご覧ください。

于 2012-10-24T03:35:23.747 に答える
1

警告 - デスクトップ アプリケーションを作成してからしばらく経ちましたが、java.awt.Component クラスには、KeyListener を実装するクラスを登録するために使用できる addKeyListener() メソッドがあります。これはあなたが探しているものですか?

于 2012-10-24T03:26:53.280 に答える