Java 爪哇语;";无法在按键功能中解析为变量
我正在尝试编写一个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);
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编写代码。。。