从PopUp窗口的主窗口访问变量

时间:2014-03-18 01:03:40

标签: java swing user-interface jdialog

我的主窗口GUI中有一个名为totalCost的私有String变量,名为PriceCalculator类,以及一个名为getCost()的getter方法。我需要在我的辅助窗口中访问此变量,该窗口会弹出一个来自我的主窗口的事件。

这是我的第二个窗口:

public class ExtraWindow extends JDialog {
  public ExtraWindow(JFrame frame) {
    super(frame, "Calculations", true);
    this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    getContentPane().setLayout(null);
    this.setSize(300,300);
    centerWindow(this);
  }.......
   ....

如您所见,我认为第二个窗口将主窗口作为参数。 这是我从第一个窗口需要totalCost的地方:

 JLabel lblCost = new JLabel("Cost: ");

由于我需要使用其正在使用的特定帧中的信息,因此我无法创建匿名或其他PriceCalculator并从那里获取它。我尝试使用frame.getCost(),这导致我将框架作为PriceCalculator进行投射,但我的程序无法运行。

如何从第一个窗口访问此变量,这是第二个窗口的参数?

抱歉,忘了添加,在第一个窗口中,事件发生在哪里:

public class Event implements MouseListener {

    @Override
    public void mouseClicked(MouseEvent e) {
        new ExtraWindow(PriceCalculator.this);

    }

1 个答案:

答案 0 :(得分:2)

你可以......

将公开ExtraWindow(JFrame frame)更改为公开ExtraWindow(PriceCalculator frame),这样您就可以直接访问PriceCalculator及其所有方法......

你可以......

提供一个附加参数,将值传递给构造函数...

public ExtraWindow(JFrame frame, double cost) {...

你可以......

setCost

中提供ExtraWindow方法