2013-10-31 26 views
0

我可以有一個Java程序在沒有組件的情況下監聽鍵盤嗎?沒有組件的EventListener

我可以在沒有可視組件的情況下使用接口KeyListener嗎?

我不需要java.awt中的任何功能。我不需要任何窗口/組件等。我只是想讓程序對一些輸入做出反應。

+0

Key logger ....? –

+0

不,我正在計算機上運行一些實驗,並希望能夠通過按Esc鍵退出實驗,這會導致實驗過早取整,從而節省中間結果。 –

+0

因此,在屏幕上放置一個「停止」按鈕並附加一個動作監聽器。 –

回答

1

我可以有一個Java程序在沒有組件的情況下監聽鍵盤嗎?

我可以使用該接口的KeyListener無需可視組件?

1

東西必須有一個接受輸入,以使的KeyListener被調用。你用一個組件註冊一個KeyListener。擁有某種輸入組件是必需的,因此您可以註冊KeyListener。請記住,您的代碼位於JVM內部。 JVM是從底層操作系統獲取直接信號的人 - 而不是你的代碼。

你可以嘗試創建一個JNI掛鉤到一些本地代碼。

+0

那麼,爲什麼JVM無法在沒有窗口的情況下向我的程序發出信號?爲什麼我無法在沒有窗口的情況下注冊KeyListener? –

+1

這是可能的,但afaik目前不存在。你最好在一些本地代碼中創建一個JNI鉤子。 – MadConan

+0

*「最好在一些本地代碼中創建一個JNI鉤子」*這應該是你答案的一部分。我認爲這是實現沒有(擁有 - Java)組件的日誌記錄的唯一方法。 –