2012-06-22 63 views
1

我刚开始使用KeyListener界面。我想创建一个非常简单的控制台应用程序。如果我按下“ENTER”键,我希望程序打印“hi”。不幸的是,由于我缺乏知识,当我按下键盘上的输入/返回键时,没有任何反应。我没有使用Scanner类,因为它需要用户输入内容,或者只需按回车即可执行。我想要一个过程继续下去,直到被按键中断为止。以下是我的代码到目前为止:如何使用KeyListener接口?

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(); 
    } 
} 

回答

2

KeyListener只能添加到GUI组件。它不能在控制台应用程序中使用。这就是为什么它在java.awt分包中。 AWT =抽象窗口工具包,Java的基本GUI工具包。

如果要在控制台中按下Enter时中断“进程”,则应该为进程使用线程,另一个线程从标准输入读取数据,并在输入内容时中断另一个线程。

+0

你有这样的例子吗?一条链接? – user1299661

+0

阅读关于并发性的Java教程,特别是阅读以下页面:http://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html –

+0

谢谢,但我如何将中断与按钮按下绑定? – user1299661