簡體   English   中英

Java / Swing:處理同時的GUI和CLI輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM