簡體   English   中英

將字符串變量從一個窗口顯示到另一個窗口Java Swing

[英]Displaying a string variable from one window into another window Java Swing

如果問題有點模棱兩可,我深表歉意。 本質上,我有兩個單獨的窗口。 一個是主窗口,它將JTextField數字輸入到JTextField 然后,我將這些數字分配給變量(假設所有變量都已聲明)

xxxx = textField.getText(); 

在第二個窗口(按下按鈕后打開)中,我需要在第一個窗口的textField中輸入的數字自動顯示在第二個窗口的textField中。

為此,我使用:

textField_1 = new JFormattedTextField();
textField_1.setEditable(false);
panel_4.add(textField_1);

textField_1.setText(dbMain.xxxx);
System.out.println(dbMain.xxxx);

textField_1.setFont(productFont);
textField_1.setColumns(10);

我似乎無法使它正常工作,因為我嘗試的所有操作都給了我一個空白的textField,或者如果我嘗試在控制台中打印變量,則會得到null

dbMain是程序中的主類,我從該程序中調用xxxx

如果調用getText()方法並在最開始將返回值分配給屬性(在本例中為xxxx),則在用戶輸入任何文本之前,該值必須為null。

我建議您為dbMain提供一個方法,並在第二個窗口出現時返回getText()值,例如:

(在主艙內)

public String getTextFromTextField() {
  return this.textField.getText();
}

然后在第二個窗口中調用dbMain.getTextFromTextField()應該返回用戶輸入的最新值。

拋開是否有2幀效果不錯。 您想要實現的目標可以通過以下幾種方式完成:

  1. MVC(模型視圖控制器),您可以在其中保存所有數據。 因此,您的兩個框架都將訪問同一模型(數據)。 一方的更新將反映在另一方。

  2. 觀察者模式。 創建一個觀察者和一個可觀察的界面。 讓您的框架實現這些接口。 當一個進行任何更改時,它將“自動”通知另一個。

  3. 將當前幀的參考傳遞到另一幀。 (這是最簡單的實現)

class WindowOne extends JFrame{
    private JFrame windowTwo;
}
class WindowTwo extends JFrame{
    private JFrame windowOne;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM