2012-06-22 66 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