[英]Java/Swing: handle simultaneous GUI and CLI input
我正在創建一個Swing應用程序(一個小游戲),玩家可以通過單擊“是”或“否”按鈕做出一些選擇,並且我希望能夠同時在終端上玩游戲。
我要實現的是,同時在GUI上顯示選擇按鈕的同時,在CLI中顯示一些文本,我開始等待諸如System.console.readLine()之類的輸入。
棘手的部分是玩家必須能夠隨時在GUI和CLI之間切換以進行選擇。因此,無論何時出現選擇,我都會使用readLine()啟動線程,並在按鈕上附加一個動作監聽器。 (但是,如果您有其他方法來解決問題,歡迎您)
所以這就是問題所在:如果已經在GUI中完成選擇,我如何停止等待來自CLI的用戶輸入? (正如預期的那樣,thread.interrupt()和thread.stop()都沒有真正停止readLine()等待用戶輸入)
在您的位置,我將創建兩個Threaded類
public class MyGuiGame extends Thread { // or impelment runnalbe
// implement run for your game model
// you can impelemnt a game service class to be used in
}
然后我將創建另一個線程類
public class MyConsoleGame extends Thread { // or implement runnalble
// implement your console game here
}
然后在啟動方法的appMain類中
public static void main(String[] args){
new MyConsoleGame().start();
new MyGuiGame().start;
}
這是一個基於線程的簡單想法,但是您必須使用所有設計模式和安全的線程主體對其進行改進
對於輸入方面的挑戰,您必須在數據存儲庫上實現生產者使用者體系結構(應閱讀的內容)
那么您必須驗證公共數據存儲庫是否不為null或為空,嘗試查找簡單的writer讀取器生產者使用者問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.