2011-12-06 70 views
3

我已經在java中多次使用Robot類作爲快速變通任務的解決方案。停止執行總是一個問題(測試期間需要多次)。我想要的是一個KeyListener,它將監聽一個鍵/組合鍵並停止該程序。從我的簡短閱讀中,似乎你無法在沒有框架或類似的東西的情況下嵌入關鍵聽衆。對我而言,重點意味着最前沿的窗口。這是錯誤的定義?如果這是正確的定義,我無法保持窗口的焦點,因爲我正在爬行我的機器人。我怎麼解決這個問題?使用Java Robot類。停止執行程序的方法?

當輸入這個時,我想出了一個非理想的解決方案,它以編程方式使窗口成爲焦點,測試按鍵,然後以編程方式使其脫離焦點並繼續。這可能嗎?有沒有更好的辦法?

回答

2

你想要一個全球關鍵監聽器,無論什麼應用程序的焦點監聽鍵的東西嗎?這對於Robot /純Java來說是不可能的。

但是,如果在Windows上運行,則可以使用JNA執行此操作。 JNA的KeyHook example是一個很好的起點。

1

嗯,我不太熟悉Java的機器人,但KeyListener問題可以通過輸入/動作映射(指南here)解決。

或者,您可以使用帶確認消息的JOptionPane(「繼續機器人?是/否」),而不是測試按鍵。但仍然不是最好的解決方案。