2017-06-22 75 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,将其存储在合适的变量/字段中,然后用它填充对话框中显示的文本消息。

相关问题