java - 如何使用 KeyListener 接口(interface)?

标签 java listener keypress keylistener keyevent

我刚刚开始使用 KeyListener 接口(interface)。我想创建一个非常简单的控制台应用程序。如果我按“ENTER”键,我希望程序打印“hi”。不幸的是,由于我缺乏知识,当我按下键盘上的 Enter/Return 键时,什么也没有发生。我没有使用 Scanner 类,因为它要求用户输入某些内容,或者只需按 Enter 键即可执行某些内容。我希望一个进程继续下去,直到它被按键中断。到目前为止,我的代码如下所示:

import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;

public class Trash implements KeyListener {
   public void keyPressed(KeyEvent e){
      System.out.println("hi");
      switch (e.getKeyCode()) {
         case KeyEvent.VK_ENTER:
            System.out.println("hi");
      }
   }

   public void keyTyped(KeyEvent e){}

   public void keyReleased(KeyEvent e){}

   public static void main (String [] args){
      Trash obj1 = new Trash();
   }
}

最佳答案

KeyListener 只能添加到 GUI 组件中。它不能在控制台应用程序中使用。这就是为什么它位于 java.awt 子包中。 AWT = Abstract Window Toolkit,Java 的基本 GUI 工具包。

如果你想在控制台中按下回车键时中断一个“进程”,你应该为你的进程使用一个线程,另一个线程从标准输入读取并在输入内容时中断另一个线程。

关于java - 如何使用 KeyListener 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162203/

相关文章:

java - 使用 Apache Commons FTPClient 监控进度

android - android中的监听器与处理程序

使用按钮 OnClick 监听器时 Android 应用程序崩溃

javascript - jQuery/Contenteditable - 按键上的新段落适用于原始但不是生成的内容

c# - 如何使用 C# 在 Selenium WebDriver 中按下 'Esc' 键

javax.ws.rs.ProcessingException : could not find writer for content-type application/x-www-form-urlencoded type

java - Tomcat 更新后 WebsocketServerContainer 不在 ServletContext 中

Java 类泛型和方法泛型冲突

java - 监听器移除

javascript - 如何在 JavaScript 中从 char 获取 make 代码?