2016-07-28 75 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); 
} 
相關問題