繁体   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