gpt4 book ai didi

Java最简单的按键监听器

转载 作者:行者123 更新时间:2023-11-30 07:39:38 25 4
gpt4 key购买 nike

我知道有数以百万计的问题,但我无法理解其中的大多数。我见过人们做了类似的事情:

public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()== KeyEvent.VK_Q)
//do something
}

但是 keyPressed 必须重写某些类的方法才能工作或在其他线程中运行。我真的不知道该怎么做。有人可以给我最简单的 java keylistener 代码吗?
即使程序没有聚焦,它也应该可以工作(它只是控制台程序)。

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.*;

import javax.swing.JFrame;

public class SquatCounter {

class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()== KeyEvent.VK_Q)
System.out.println("Key Q pressed!");
}
}

JFrame jf = new JFrame("title");
public SquatCounter() {
jf.addKeyListener(new MyKeyListener());
}
public static void main(String[] args) {
Key1 key = new Key1 ();
SquatCounter test = new SquatCounter();
}
}

最佳答案

当您设置 JFrame 时,添加一个 KeyListener,如下所示:

JFrame jf = new JFrame("title");
jf.addKeyListener(new MyKeyListener());
jf.setVisible(false);

(jf.setVisible(false); 阻止程序窗口出现(仅限命令行)

然后创建一个名为 MyKeyListener 的新类,该类扩展 KeyAdapter

class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()== KeyEvent.VK_Q)
System.out.println("Key Q pressed!");
}
}

现在让我解释一下。

首先,当您创建 JFrame 时,它​​没有附加默认的 KeyListener。因此,我们必须创建一个类MyKeyListener来做到这一点。

其次,我们扩展了 KeyAdapter 而不是实现 KeyListener,因为其中的方法比您需要的要多得多。当你扩展KeyAdapter时,你只需要覆盖keypressed()方法,但你必须实现所有(我认为是3个)其他方法您不需要实现您的目的。

最后,如果您想要执行其他方法,例如 keyreleased(),只需将其添加到 MyKeylistener 类中即可。

希望这有帮助!

编辑:根据OP的要求,应该是这样的:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line = "";

while (line.equalsIgnoreCase("q") == false) {
line = in.read();

System.out.println("Q is pressed!");
}

in.close();

关于Java最简单的按键监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34864625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com