将字符串变量从一个窗口显示到另一个窗口Java Swing

时间:2017-08-17 15:46:35

标签: java swing

如果问题有点含糊,请道歉。基本上,我有两个独立的窗口。一个是主窗口,它将一串数字输入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

2 个答案:

答案 0 :(得分:0)

如果调用getText()方法并在最开始时将返回值赋给属性,在本例中为xxxx,则在用户输入任何文本之前必须为null。

我建议您为dbMain提供一个方法,并在第二个窗口出现时返回getText()值,如:

(主要课程内)

select null + 'someString'

然后在第二个窗口中调用dbMain.getTextFromTextField()应该返回用户输入的最新值。

答案 1 :(得分:0)

暂且不管2帧是否合适。您想要实现的目标可以通过以下几种方式实现:

  1. MVC(模型视图控制器),您可以将所有数据保存在模型中。因此,您的两个帧都将访问相同的模型(数据)。从一方更新将反映在另一方。

  2. 观察者模式。创建一个观察者和一个可观察的界面。让您的框架实现这些接口。当进行任何更改时,它将“自动”通知另一方。

  3. 将当前帧的引用传递给另一帧。 (这是最简单的实施方式)

  4. 实施例

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