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

您需要有一个 Key Listener 来实际侦听关键事件并调用适当的方法。通常,您会使用该方法将它附加到组件(例如 JTextField、JPanel 等)addKeyListener()

DashExplorer.keyPressed(e);

正在使用尚未声明的变量。

从 oracle 中查看有关实现键侦听器的本教程。

于 2012-04-19T00:14:18.907 回答
1

问题是这一行:

DashExplorer.keyPressed(e);

尝试引用不在范围内/未声明的变量。

main我不明白您在该方法中要做什么。(它是一个测试工具吗?)

显而易见的“修复”将是用于new KeyEvent(...)在此时创建一​​个关键事件,但这需要您了解构造函数参数。除非这是一个测试工具,否则这样做没有多大意义。

于 2012-04-19T00:12:43.713 回答