我有一个私有字符串变量totalCost在我的主窗口GUI称为类PriceCalculator,以及getter方法getCost()。我需要访问这个变量在我的辅助窗口弹出作为一个事件从我的主窗口。
这是我的第二个窗口:
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(),这导致我将frame转换为PriceCalculator,但是我的程序无法运行。
我如何从第一个窗口访问这个变量,它是第二个窗口的参数?
对不起,忘记添加第一个窗口中事件发生的位置:
public class Event implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
new ExtraWindow(PriceCalculator.this);
}
You Could…
将公共ExtraWindow(JFrame frame)
更改为公共ExtraWindow(PriceCalculator frame)
,这样您现在可以直接访问PriceCalculator
及其所有方法…
你可以…
提供一个附加形参,将值传递给构造函数…
public ExtraWindow(JFrame frame, double cost) {...
你可以…
在ExtraWindow
中提供setCost
方法