Java 对于类型InputHandler,未定义方法toggleKey(int,boolean)

Java 对于类型InputHandler,未定义方法toggleKey(int,boolean),java,input,key,Java,Input,Key,我想知道是否有人能帮忙,基本上我是在学习一些输入处理的教程,教程要求我创建一个新类并编写代码 package net.pinkeye.JavaGame; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.ArrayList; import java.util.List; public class InputHandler implements KeyListener{ pu

我想知道是否有人能帮忙,基本上我是在学习一些输入处理的教程,教程要求我创建一个新类并编写代码

package net.pinkeye.JavaGame;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.List;

public class InputHandler implements KeyListener{

public InputHandler(Game game) {
    game.addKeyListener(this);
}

public class Key {
    public boolean pressed = false;

    public boolean isPressed(){
        return pressed;
    }
    public void toggle(boolean isPressed) {
        pressed = isPressed;
    }
}


public Key up = new Key();  
public Key down = new Key();    
public Key left = new Key();    
public Key right = new Key();

public void keyPressed(KeyEvent e) {
    toggleKey(e.getKeyCode(),true);
}


public void keyReleased(KeyEvent e) {
    toggleKey(e.getKeyCode(),false);
}

public void keyTyped(KeyEvent e) {
}


public void toggle (int keyCode, boolean isPressed) {
    if(keyCode == KeyEvent.VK_W){
        up.toggle(isPressed);
    }
    if(keyCode == KeyEvent.VK_S){
        down.toggle(isPressed);
    }
    if(keyCode == KeyEvent.VK_A){
        left.toggle(isPressed);
    }   
    if(keyCode == KeyEvent.VK_D){
        right.toggle(isPressed);
    }
}

}
但是它说什么呢

    public void keyPressed(KeyEvent e) {
    toggleKey(e.getKeyCode(),true);
}


public void keyReleased(KeyEvent e) {
    toggleKey(e.getKeyCode(),false);
}
eclipse告诉我,对于InputHandler类型,toggleKey(int,boolean)方法是未定义的

我按照本教程中的单词wrd进行了多次检查,但我找不到我的错误

任何帮助都会很好


顺便说一句,如果这有帮助的话,这里有一些提示:

您的实际方法被称为
toggle
,但是您已经声明了调用
toggleKey
的可能性。将
toggle
重命名为
toggleKey
应该可以解决您的问题。

让我直截了当地说吧——您正在调用一个方法
toggleKey(…)
,您没有在任何地方声明它,当它导致代码无法编译时,您会感到惊讶。我很惊讶你为什么会感到惊讶。这件事让你困惑的是什么?为什么不调用类中实际存在的方法呢?是的,我知道,但本教程没有声明它??没关系。你的代码没有逻辑意义。不要盲目地遵循教程——运用你的头脑和常识。啊,好的,谢谢你知道了;)它应该会起作用。错误是如此明显,德里克是对的。“Key”类中的“toggle”方法应该保持原样。但请将签名为“public void toggle(int-keyCode,boolean-isPressed)”的“toggle”方法重命名为“public void toggleKey(int-keyCode,boolean-isPressed)是的,我刚意识到那家伙打出了拨动键,后来没说一句话就把它改名为“t拨动键谢谢”,这是今天最糟糕的问题之一。不要因为你犯的愚蠢错误而失去动力。继续编码。在你知道自己是个好程序员之前。祝你好运