【问题标题】:Why am I not able to transfer data between two JFrames?为什么我无法在两个 JFrame 之间传输数据?
【发布时间】:2018-01-24 13:48:14
【问题描述】:

我在一个项目中有两个JFrame。 在JFrame1 我有一个JTextField (JFrame1_JTextField) 和一个按钮。在另一个JFrame 我只有一个JTextField (JFrame2_JTextField)。

当我运行程序并在JFrame1_TextField 中输入文本并单击按钮时,我希望文本显示在JFrame2_JTextField 中。但是第二个JFrame 中没有显示任何文本。

我没有收到任何错误,但也没有得到预期的输出。

预期输出:我希望在单击按钮后将JFrame1_JtextField 中输入的文本设置为JFrame2_JTextField

private void ButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    new JFrame2().JFrame2_JTextField.setText(this.JFrame1_JTextField.getText());
    new JFrame2().setVisible(true);
}                           

【问题讨论】:

标签: java swing jframe jtextfield


【解决方案1】:

您的代码创建了两个新的JFrame2s。

new JFrame2().JFrame2_JTextField.setText(this.JFrame1_JTextField.getText());

在这里您创建了一个新的 JFrame2 并设置了文本内容。

new JFrame2().setVisible(true);

现在您创建另一个新的 JFrame2 并显示它。文字内容已经放在你之前创建的JFrame2中了,显然第2个JFrame2无法显示。

将您的 JFrame2 存储在一个变量中并使用它:

JFrame2 jframe2 = new JFrame2();
jframe2.JFrame2_JTextField.setText(this.JFrame1_JTextField.getText());
jframe2.setVisible(true);

通过公共变量进行通信本身就有问题,但这不是问题的范围。不过,请考虑在您的 JFrame 类中编写可用于数据交换的公共方法。

【讨论】:

  • 非常感谢您的帮助。
  • 很高兴我能帮上忙。请单击我的答案旁边的灰色复选标记,以通知其他人您的问题已解决。 How does accepting answers work?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多