所以我有两个Java类,每个类都创建一个包含各种组件的JFrame。每个类都有自己的addComponentsToPane(...)方法,用于设置框架的内容。这在createAndShowGui()方法中使用,该方法在类的main方法中调用。
让我们称它们为类A和B。所以问题是,在A中我有一个按钮,当点击时,启动B(简单的B.main(null)调用。
所以我想知道的是,考虑到这种设置,有没有一种方法可以在B关闭时重置A中的布尔值?我在想,也许我可以在B中使用WindowListener来做一些事情,但是如果这是一个可能的解决方案,那么我还没有想出配置它来做什么。
发布于 2013-08-08 15:24:19
基本上,你要做的就是让一个框架成为你的“主”框架,这意味着它包含了主方法。在您的示例中,这将是您的帧A。然后,使帧B(而不是JFrame)成为帧A的一部分。
类似于:
public MainApp extends JFrame { // Frame A
...
private static CustomWindowB FrameB = null;
...
public static void main(String[] args){
super();
FrameB = new CustomWindowB(...);
...
}
...
public void FunctionCalledByButtonClick(){
if(FrameB == null){
FrameB = new CustomWindowB(...);
} else {
if(FrameB.isVisible()){
FrameB.hide();
} else {
FrameB.show();
}
}
}
}对于B,您可以这样做:
public CustomWindowB extends JDialog { // Frame B
public CustomWindowB(...){
super();
...
this.setVisible(true);
}
public void hide(){
this.setVisisble(false);
}
public void show(){
this.setVisisble(true);
}
}https://stackoverflow.com/questions/18120045
复制相似问题