2016-07-28 59 views
0

我有两个jFrames Form_1Form_2如何将字符串从一个JFrame传递到现有的JFrame

这里是Form_1

Form_1

这里是Form_2

Form_2

我已经做了就是,Form_2将首先运行当我按“Open Form 1” button,它会打开Form_1。

现在,我想要做的是,当我在Form_1文本框输入文字,并按下“展Form_2”,则Form_1将关闭,并显示在Form_2文本的文本方框

我已经试过这样:

private void Form_1ButtonActionPerformed(java.awt.event.ActionEvent evt) { 
     String form1_text = form1textbox.getText(); 
     Form_2 form2 = new Form_2(); 
     form2.form2textbox.setText(form1_text); 
     form2.setVisible(true); 
     this.setVisible(false); 
} 

它的工作原理,但它会打开一个新的Form_2,并显示在它的文本。如何在不打开新文件的情况下显示现有Form_2中的文本?请帮帮我。

+0

你可以简单地关闭Form_2当你调用Form_1.After,当你调用Form_2只需使用您的实现方法 –

+0

您可以通过使用接口 – Vickyexpert

回答

1

当您想从Frame_2打开Frame_1时,只需将Frame_2的对象传递给Frame_1即可。

在Frame_2

Frame_1 from1 = new Frame_1(this); 

凡FRAME_1构造函数是看起来像这样

Frame_2 form2; 
public Frame_1(Frame_2 fr2){ 
    form2=fr2; 
} 

现在FRAME_1与窗口2

String form1_text = form1textbox.getText(); 
form2.form2textbox.setText(form1_text); 
0

您可以创建并初始化Form_2对象,并立即将其隐藏在主要方法(form2.setVisible(false))中。然后,当你想显示它时,像你已经有的那样更新文本框对象,然后调用form2.setVisible(true)。

+0

基本上做到这一点,调用'新Form_2()'会自动创建窗口,所以不要再次调用该方法。只需使用挥杆可见度控制。 –

+0

我可以做到,但我需要做到这一点,而不隐藏Form_2。那么,它有什么办法吗? –

+0

我不太清楚我的理解。如果将可见性设置为true,Form_2将不会隐藏。在程序中的任何位置都无法隐藏窗口的问题是否存在?如果是这样,为什么?您正在对Form_1执行相同的操作。 –

0

工作让你Form_2例如全球性使它能被访问Form_1ButtonActionPerformed.

public class MyClass{ 
    public static Form_2 form2; 

    public void someMethod(){ 
     form2 = new Form_2(); 
     ... 
    } 
    ... 
} 

private void Form_1ButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    String form1_text = form1textbox.getText(); 
    MyClass.form2.form2textbox.setText(form1_text); 
    form2.setVisible(true); 
    this.setVisible(false); 
} 
相关问题