Java 如何使用参数为“的方法?”;KeyEvent e";?

Java 如何使用参数为“的方法?”;KeyEvent e";?,java,events,arguments,keyevent,Java,Events,Arguments,Keyevent,我已经看过了我之前的一个问题的一系列答案(答案是肯定的),但我一直看到的是如下方法: public void keyPressed(KeyEvent e) 但是没有人能说明这些方法是在哪里使用的,所以我从来没想过该怎么处理这个论点 例如: public void keyPressed(KeyEvent e, Robot r) { int key = e.getKeyCode(); if (key == KeyEvent.VK_W) { r.keyPress(Ke

我已经看过了我之前的一个问题的一系列答案(答案是肯定的),但我一直看到的是如下方法:

public void keyPressed(KeyEvent e)
但是没有人能说明这些方法是在哪里使用的,所以我从来没想过该怎么处理这个论点

例如:

public void keyPressed(KeyEvent e, Robot r) {
    int key = e.getKeyCode();
    if (key == KeyEvent.VK_W) {
        r.keyPress(KeyEvent.VK_R);
        r.mousePress(InputEvent.BUTTON1_MASK);
        try { Thread.sleep(100); } catch (Exception s) {}
        r.mouseRelease(InputEvent.BUTTON1_MASK);
    }
}

public static void autoCliker() throws AWTException, InterruptedException
{
    Robot r = new Robot();
    while(KeyPressed(not sure what to do here, r)//this is what my question is about
{
        Thread.sleep(10);
        r.keyPress(KeyEvent.VK_R);
        r.mousePress(InputEvent.BUTTON1_MASK);
        try { Thread.sleep(100); } catch (Exception e) {}
        r.mouseRelease(InputEvent.BUTTON1_MASK);

    }
}

与其说是关于KeyEvent,不如说是关于如何在方法中的参数中使用事件,我只是以我的一个程序为例。

当类实现KeyListener时,会显示此方法和其他方法

public class Test implements KeyListener {
此方法检测键盘上按下的键。如果您想检测某个密钥,如w。这样做:

if(e.getKeyCode.equals(KeyEvent.VK_W);

希望这有帮助。

这确实有帮助,但这仍然不是我想要的。我将更新问题,并举例说明我的意思。在您提出问题的地方,您只需输入参数,不确定问题所在。如果不需要创建自己的keyPressed方法(过于复杂),只需实现KeyListener并使用默认方法,然后在该方法中添加代码。这样你就不需要调用自动调用的方法了。很抱歉这么晚才回复,但是我之前对我的问题有点不清楚。我没有尝试创建一个新的按键方法。据我所知,我认为可以在while循环中将其用作布尔表达式,以查看是否按下了某个键。在伪代码中:
while(按键(W键)){do something}
No,但是如果可以的话,这会让事情变得更容易,不是吗。你删除了你的另一个问题以快速完成。欢迎新手在此提问;但正如EJP试图向你们解释另一个被否决的问题:形式问题。当你问起编码问题时,一定要有一个真正的答案。不要浪费时间去表达你是一个没有名声的新手。那没关系。这是一个问答社区——唯一重要的是你的输入的质量。你今天早上删除的问题根本不属于完全符合这个社区范围的问题类别。如前所述,这个问题可能有许多不同的原因,其中许多不是编程问题。从这个意义上说:A)你可以在quora.com等论坛上提问,但不要搞错;你可能不会那么容易获得否决票,但当你提出一个“糟糕”的问题时,你将根本得不到答案。B) 只需研究其他(更成功的)新手是如何写问题的。学习老师要告诉你的。所有这些。反复地是的,我承认:这里的人有时很挑剔。一个糟糕的新手问题在10分钟内被否决、关闭和删除;其他人获得了更多的选票,并在几天或几周内不断吸引c..p的答案。是的,“java”标签是人们更挑剔的标签。但是,这就是这里的情况。如前所述:写问题时要集中注意力。试着想想一个完全陌生的人对你的意见会有什么反应。。。并且要明白:当人们否决投票时,他们不会认为你愚蠢。这不是针对个人的。这意味着:你应该提高你对我们的投入@我知道我还有很多东西要学,但如果我的问题不清楚,否决它对任何人都没有帮助。我只是不明白为什么没有人直截了当地问我一些我可能不知道的细节。仅仅问我一些我错过的事情,甚至可能会为我指出我需要的方向,以便我修正我的错误。我现在也知道,最好为固定代码添加一个新块,而不是让人们在注释中搜索答案。(至少这是我得出的一个结论)当我变得太苛刻时,这只是一个对我有用的建议。我所做的就是记住,我们曾经都是孩子,什么都不知道,什么都不担心,我只是把每个人,包括我自己,都看成是个孩子,这打开了我的心扉,让我能够平静地回答,而不是太苛刻。这很奇怪,但对我来说很有效。