2017-06-22 72 views
0

我們用兩個窗口編寫了一個遊戲:MainMenu和Playfield。當你點擊MainMenu開始 - Playfield打開。在MainMenu中有兩個JTextfields,兩個玩家可以輸入他們的名字。目前2個JTextfields沒有任何功能。如何在一個框架中獲取用戶輸入並在另一個JFrame中獲取輸出?

現在的問題是:我們想得到這個名字,我們希望存儲它們,直到有人贏了,贏了後我們想輸出類似「xy wins!」的東西。在對話框中。我們如何在兩個窗口中實現?

+0

我認爲您需要對「模型 - 視圖 - 控制器」進行一些研究,以更好地理解數據如何在類之間共享 – MadProgrammer

回答

1

窗戶只是您的意見,向用戶展示/獲取一些信息。 您需要將輸入到MainMenu中的數據存儲在兩個框架可以訪問的某個模型classm中。

0

無論您的文本框在哪個Frame中以及要在哪個Frame中打印輸出 - 組件層次(即哪個組件在哪個容器中)與處理輸入和輸出無關。

在這種特殊情況下,您必須收聽一個事件,告知您JTextFields已收到輸入。這可能是

  • 從與JTextFields
  • 從與文件備份的JTextField(即textfield.getDocument().addDocumentListener(...)
  • 的動作從事件註冊的DocumentListener一個的changedUpdate /中的insertUpdate /中的removeUpdate事件註冊的FocusListener一個focusLost事件用戶點擊以確認其輸入的JButton的ActionEvent

一旦您收到該事件,您將檢索文本來自JTextfield,將其存儲在合適的變量/字段中,然後用它填充對話框中顯示的文本消息。

相關問題