我们编写了一个有两个窗口的游戏:MainMenu 和 Playfield。当您单击 MainMenu 中的开始时 - Playfield 将打开。在 MainMenu 中有 2 个 JTextfields,两个玩家可以在其中输入他们的名字。目前 2 个 JTextfields 没有任何功能。
现在的问题是:我们想要得到这个名字并且我们想要存储它们直到有人获胜并且在获胜之后我们想要输出类似“xy wins!”的内容。在一个对话框中。我们如何在两个窗口中实现它?
我们编写了一个有两个窗口的游戏:MainMenu 和 Playfield。当您单击 MainMenu 中的开始时 - Playfield 将打开。在 MainMenu 中有 2 个 JTextfields,两个玩家可以在其中输入他们的名字。目前 2 个 JTextfields 没有任何功能。
现在的问题是:我们想要得到这个名字并且我们想要存储它们直到有人获胜并且在获胜之后我们想要输出类似“xy wins!”的内容。在一个对话框中。我们如何在两个窗口中实现它?
窗口只是您向用户呈现/获取一些信息的视图。您需要将 MainMenu 中输入的数据存储在某个模型类中,两个框架都可以访问。
您的文本字段在哪个框架中以及您要在哪个框架中打印输出都无关紧要 - 组件层次结构(即哪个组件在哪个容器中)与处理输入和输出无关。
在这种特殊情况下,您必须收听一个告诉您JTextFields
已收到输入的事件。这可能是
FocusListener
注册的 focusLost 事件JTextFields
DocumentListener
的文档中注册的 changedUpdate/insertUpdate/removeUpdate 事件JTextField
textfield.getDocument().addDocumentListener(...)
JButton
来自用户单击以确认其输入的 ActionEvent 的动作事件收到该事件后,您从 JTextfield 检索文本,将其存储在合适的变量/字段中,然后使用它来填充对话框中显示的文本消息。