Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串从jframe2发送到jframe1_Java_String_Swing_Jframe_Multiple Instances - Fatal编程技术网

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
。其中一个文本字段应从my
jFrame2
加载数据。在我的
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的基本教程开始。这是一个用于解释设计缺陷的编码技巧,可以使用模式轻松解决对话