我在项目中有两个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);
}
答案 0 :(得分:1)
您的代码会创建两个新的JFrame2
。
new JFrame2().JFrame2_JTextField.setText(this.JFrame1_JTextField.getText());
在这里,您创建了一个新的JFrame2并设置了文本内容。
new JFrame2().setVisible(true);
现在您创建另一个新的JFrame2并显示它。文本内容已放在您之前创建的JFrame2中,因此显然第二个JFrame2无法显示它。
将JFrame2存储在变量中并使用:
JFrame2 jframe2 = new JFrame2();
jframe2.JFrame2_JTextField.setText(this.JFrame1_JTextField.getText());
jframe2.setVisible(true);
通过公共变量进行的沟通本身就存在问题,但这不是问题的范围。不过,请考虑在JFrame类中编写可用于数据交换的公共方法。