2011-03-27 57 views
0

我有一段無限循環內的代碼。我想實現一種方法來檢查我是否按下按鈕或不按照循環斷路器。簡單的按鍵偵聽器 - java

while(true) 
{ 
... 
    if(this.escapeKeyIsPressed()) //Should return true if escape is pressed at that milisecond 
    { 
     ... 
     break; 
    } 
} 

在java中這樣做的最簡單方法是什麼?我應該看哪個圖書館?

提前感謝您的時間。

+0

它是一個控制檯的基礎應用程序,或者你在使用swing嗎? – 2011-03-27 20:11:59

+0

基於控制檯的應用程序,無界面atm – Pumpkin 2011-03-27 20:12:40

+0

不要將其作爲基於控制檯的應用程序來執行此操作。而是使用一個GUI庫,如Swing。 – 2011-03-27 20:18:07

回答

2

This page介紹了一種將控制檯設置爲非阻塞模式以讀取字符的方法,您可以使用該字符來打破循環。它還爲Python和Java提供了其他一些方法,但它必須被認爲有點不可靠和不可移植(例如,在Windows下不起作用)。我不認爲恐怕有一種'很好'的簡單方法。

1

不幸的是,KeyListener接口是由java.awt.event包提供的,該包是Java圖形和窗口工具包的一部分,這意味着此類僅適用於窗口化應用程序(例如Swing程序和Applets)。

第三方解決方案可能存在,但核心Java並沒有提供一個可靠的方法來做你的要求。