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