0

ユーザーからのキー入力をリッスンする Java アプリケーションを作成しようとしています。これは私のコードです...

import java.awt.event.KeyEvent;

public class DashExplorerMain {
    public static void main(String[] args) {
        DashExplorerMain dashExplorer = new DashExplorerMain();
        dashExplorer.keyPressed(e);
    }

    public void keyPressed(KeyEvent e) {
        int keyCode = e.getKeyCode();
        switch( keyCode ) { 
            case KeyEvent.VK_UP:
                // handle up 
                break;
            case KeyEvent.VK_DOWN:
                // handle down 
                break;
            case KeyEvent.VK_LEFT:
                // handle left
                break;
            case KeyEvent.VK_RIGHT :
                // handle right
                System.out.println("-");
                break;
            }
        } 
    }
}

コードをコンパイルしようとすると、次のエラーが発生します...

Exception in thread "main" java.lang.Error: Unresolved compilation problem: e cannot be resolved to a variable
    at DashExplorerMain.main(DashExplorerMain.java:11)

問題を理解するのを手伝ってください。

4

2 に答える 2

3

キー イベントを実際にリッスンし、適切なメソッドを呼び出すキー リスナーが必要です。addKeyListener()通常は、メソッドを使用してコンポーネント (JTextField、JPanel など) にアタッチします。

DashExplorer.keyPressed(e);

宣言されていない変数を使用しています。

キーリスナーの実装については、oracle のこのチュートリアルをご覧ください。

于 2012-04-19T00:14:18.907 に答える
1

問題は、次の行です。

DashExplorer.keyPressed(e);

スコープ外/宣言されていない変数を参照しようとしています。

メソッドで何をしようとしているのかわかりませんmain。(テストハーネスですか?)

明らかな「修正」はnew KeyEvent(...)、その時点でキーイベントを作成するために使用することですが、それにはコンストラクターの引数を理解する必要があります。これがテスト ハーネスでない限り、それを行う意味はあまりありません。

于 2012-04-19T00:12:43.713 に答える