2009-01-05 114 views
8

我剛剛開始搞亂JLine以解析控制檯模式下的字符輸入。它似乎運作良好,但我想知道:在控制檯應用程序中解析Java鍵盤輸入

在JLine中是否有一種非阻塞方式來查明字符是否可用? (即在Windows中爲kbhit())。

我想我總是可以將鍵盤輸入包裝在它自己的線程中,然後在線程安全的隊列中提供鍵盤字符給主線程,但是這看起來應該是不必要的。

編輯:這是逐個字符的解析。我不打算使用GUI。在控制檯模式下,Java中的通常InputStream I/O要求您先按Enter鍵(例如,它僅是緩衝輸入)。在Java中,請不要告訴我在控制檯模式下逐個字符輸入是不可能的;它不是。 JLine使用具有平臺相關實現的便攜式界面來完成它。

編輯更新:我能砍一起輔助類做的阻塞I/O的工作線程(使用的JLine爲每個字符的I/O,警告:你要解析按Ctrl-C你自己!)&然後通過同步隊列與isempty()例程進行通信。對於我現在正在做的事情,這很好,但我真的很想知道在未來這樣做的好方法。

+4

你可以發佈一個被剪斷的答案嗎?看起來很有趣。 – OscarRyz 2009-01-09 20:40:23

回答

相關問題