【发布时间】:2014-02-09 06:42:44
【问题描述】:
从第一帧我调用另一个帧:
frame2 fr2 = new frame2();
fr2.setVisible(true);
但是当我试图以同样的方式关闭时 - 没有反应
frame2 fr2 = new frame2();
fr2.setVisible(false);
我在第一帧使用两个按钮所做的一切
【问题讨论】:
从第一帧我调用另一个帧:
frame2 fr2 = new frame2();
fr2.setVisible(true);
但是当我试图以同样的方式关闭时 - 没有反应
frame2 fr2 = new frame2();
fr2.setVisible(false);
我在第一帧使用两个按钮所做的一切
【问题讨论】:
frame2 fr2 = new frame2();
fr2.setVisible(false);
由此,您正在创建一个新的 frame2 实例并将其隐藏,并且您没有对您已经创建的 frame2 实例做任何事情,因此 no reaction
您应该做的是创建一个类字段或类似的东西来保存对您最初创建的 frame2 实例的引用(当您显示它时),然后使用相同的引用并调用 setVisible(false)。
class frame1{
...
private frame2 frame2ref;
....
void foo()
{
....
frame2ref = new frame2();
frame2ref .setVisible(true);
// create and save reference and show frame.
...
}
void bar()
{
...
frame2ref.setVisible(false);
// retrieve reference and hide frame.
...
}
}
【讨论】: