Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇语;";无法在按键功能中解析为变量_Java_Function_Keypress - Fatal编程技术网

Java 爪哇语;";无法在按键功能中解析为变量

Java 爪哇语;";无法在按键功能中解析为变量,java,function,keypress,Java,Function,Keypress,我正在尝试编写一个Java应用程序,它将侦听来自用户的键输入。这是我的密码 import java.awt.event.KeyEvent; public class DashExplorerMain { public static void main(String[] args) { DashExplorerMain dashExplorer = new DashExplorerMain(); dashExplorer.keyPressed(e);

我正在尝试编写一个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)

你能帮我理解这个问题吗。

问题是这行:

DashExplorer.keyPressed(e);
尝试引用不在范围内/未声明的变量

我不明白您在
main
方法中试图做什么。(是测试线束吗?)


显而易见的“修复”方法是使用
newkeyevent(…)
在该点创建一个键事件,但这需要您理解构造函数参数。除非这是一个测试线束,否则这样做没有多大意义。

问题在于这条线路:

DashExplorer.keyPressed(e);
尝试引用不在范围内/未声明的变量

我不明白您在
main
方法中试图做什么。(是测试线束吗?)


显而易见的“修复”方法是使用
newkeyevent(…)
在该点创建一个键事件,但这需要您理解构造函数参数。除非这是一个测试工具,否则这样做没有多大意义。

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

DashExplorer.keyPressed(e);
正在使用尚未声明的变量


查看有关实现密钥侦听器的信息。

您需要一个密钥侦听器来实际侦听密钥事件并调用适当的方法。通常,您会使用
addKeyListener()
方法将其附加到组件(例如JTextField、JPanel等)

DashExplorer.keyPressed(e);
正在使用尚未声明的变量


查看有关实现密钥侦听器的信息。

这一行您希望发生什么<代码>DashExplorer。按键(e)Java中的惯例是以小写字母开始变量。像您这样使用大写字母会让很多人认为这是对类的静态方法调用。@OliCharlesworth我相信我正在尝试在main()函数中初始化该函数,以便在运行代码时它可以工作。您希望这一行发生什么<代码>DashExplorer。按键(e)Java中的惯例是以小写字母开始变量。像您这样使用大写字母会让很多人认为这是对类的静态方法调用。@OliCharlesworth我相信我正在尝试初始化main()函数中的函数,以便在运行代码时它可以工作。我知道这可能是解决方案,但我还不够了解。我所要做的就是让它在我按下正确的键时,打印出一个破折号。这就是我现在想要做的。但是,一旦我让它工作起来,我将详细阐述并使程序更深入。我假设您现在正在编写控制台应用程序?如果是这样的话-在控制台应用程序中很难捕获诸如向右箭头这样的按键,因为在返回输入之前必须按enter键。如果你正在创建一个swing应用程序,那么按照我在回答中发布的链接很容易。是的……该死的……我今天在学校,想通过在控制台中做一些事情来练习……你知道一些简单的事情……我甚至不知道如何使用swing编写代码……我知道这可能是解决方案,但我还不够先进,无法理解。我所要做的就是让它在我按下正确的键时,打印出一个破折号。这就是我现在想要做的。但是,一旦我让它工作起来,我将详细阐述并使程序更深入。我假设您现在正在编写控制台应用程序?如果是这样的话-在控制台应用程序中很难捕获诸如向右箭头这样的按键,因为在返回输入之前必须按enter键。如果你正在创建一个swing应用程序,那么按照我在回答中发布的链接来做很容易是的…该死的,太糟糕了…我今天在学校,想通过在控制台中做一些事情来练习…你知道一些简单的事情…我甚至不知道如何使用swing编写代码。。。