如何在一个Frame中获取用户输入并在另一个JFrame中获得输出?

时间:2017-06-22 06:47:51

标签: java jframe opendialog

我们用两个窗口编写了一个游戏:MainMenu和Playfield。当您在MainMenu中单击开始时 - 将打开Playfield。在MainMenu中有2个JTextfields,两个玩家可以输入他们的名字。目前,2个JTextfields没有任何功能。

现在的问题是:我们希望得到这个名字,我们希望存储它们直到有人获胜,而在胜利之后我们想要输出类似" xy wins!"在对话框中。我们如何在两个窗口中实现它?

2 个答案:

答案 0 :(得分:1)

窗口只是您向用户显示/获取某些信息的视图。 您需要将MainMenu中输入的数据存储在某些模型类中,两个框架都可以访问。

答案 1 :(得分:0)

您的文本字段在哪个框架中以及要在哪个框架中打印输出无关紧要 - 组件层次结构(即哪个组件在哪个容器中)与处理输入和输出无关。

在这种特殊情况下,您必须收听一个事件,告诉您JTextFields已收到输入。这可能是

  • 来自FocusListener
  • 注册的JTextFields的focusLost事件
  • 从支持DocumentListener的文档JTextField注册的changedUpdate / insertUpdate / removeUpdate事件(即textfield.getDocument().addDocumentListener(...)
  • 来自JButton的ActionEvent的动作事件,用户点击该动作以确认其输入

收到该事件后,您将从JTextfield中检索文本,将其存储在合适的变量/字段中,然后使用它来填充对话框中显示的文本消息。