我的主窗口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);
}
答案 0 :(得分:2)
将公开ExtraWindow(JFrame frame)
更改为公开ExtraWindow(PriceCalculator frame)
,这样您就可以直接访问PriceCalculator
及其所有方法......
提供一个附加参数,将值传递给构造函数...
public ExtraWindow(JFrame frame, double cost) {...
在setCost
ExtraWindow
方法