Java 将字符串从jframe2发送到jframe1
我有一个Java 将字符串从jframe2发送到jframe1,java,string,swing,jframe,multiple-instances,Java,String,Swing,Jframe,Multiple Instances,我有一个jFrame1,两个JTextField。其中一个文本字段应从myjFrame2加载数据。在我的jFrame1中,有一个按钮可以打开jFrame2。当您按下按钮打开jFrame2,您可以看到4个按钮,当您按下其中一个按钮时,jFrame2应该关闭并在我的一个文本字段中加载一个字符串 有人知道我怎么做吗?因为我已经尝试了好几种代码,并没有离开我 这是我的示例代码: public class jFrame1 extends javax.swing.JFrame{ public JTe
jFrame1
,两个JTextField
。其中一个文本字段应从myjFrame2
加载数据。在我的jFrame1
中,有一个按钮可以打开jFrame2
。当您按下按钮打开jFrame2
,您可以看到4个按钮,当您按下其中一个按钮时,jFrame2
应该关闭并在我的一个文本字段中加载一个字符串
有人知道我怎么做吗?因为我已经尝试了好几种代码,并没有离开我
这是我的示例代码:
public class jFrame1 extends javax.swing.JFrame{
public JTextField txt1;
private JButton btn1;
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFrame2 jframe2 = new jFrame2(this);
jframe2.setVisible(true);
}
});
.....
}
public class jFrame2 extends javax.swing.JFrame{
private JFrame jframe1;
public jFrame2(JFrame jframe){
this.jframe1 = jframe;
}
...
jframe1.txt1.setText("Hallo!");
this.dispose();
.....
}
方法太多了, 其中之一是使用
String
参数为框架提供构造函数并传递值
比如说,
public class jFrame1 extends javax.swing.JFrame{
public JTextField txt1; // Hope you have initialized this somewhere in your code else you will face a NPE.
private JButton btn1;
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFrame2 jframe2 = new jFrame2(this, txt1.getText());
jframe2.setVisible(true);
}
});
.....
}
public class jFrame2 extends javax.swing.JFrame{
private JFrame jframe1;
private String text;
public JTextField txtDemo;
public jFrame2(JFrame jframe){
this.jframe1 = jframe;
}
public jFrame2(JFrame jframe, String text){
this.jframe1 = jframe;
txtDemo = new JTextField(text);
}
...
}
你也可以从中找到答案
在实现此功能之前,请参考上的答案,并对JFrame和Swing进行了很好的解释。您尝试了什么?显示您尝试了什么,然后我们将帮助您:)!No code=什么都没发生编写一个getter或者让字符串公开,并使用JFrame的引用直接访问getter或字符串。是的!抱歉,这里您可以阅读我的示例代码1)看到这听起来像模态
JDialog
或JOptionPane
的情况。2) 为了更快地获得更好的帮助,请发布一个(最简单的完整且可验证的示例)。对话框用于更复杂的交互。如果您只需要一条文本,JOptionPane是您的选择。感谢您的回复。在代码的最后一个问题中,在这句话中:“jframe1.txt1.setText(text);”编译器告诉我:“找不到符号:变量txt1位置:JFrame类型的变量jframe1”如果运行,也会得到一个空指针,因为jframe1中的txt1
未初始化,这里是一个将jframe1
中的txt1
文本发送到jframe2
的演示,该文本将显示在jframe2
的txtDemo
中,请从java swing的基本教程开始。这是一个用于解释设计缺陷的编码技巧,可以使用模式轻松解决对话