首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两个GUI之间通信,每个GUI位于单独的类中

在两个GUI之间通信,每个GUI位于单独的类中
EN

Stack Overflow用户
提问于 2013-08-08 15:14:53
回答 2查看 265关注 0票数 2

所以我有两个Java类,每个类都创建一个包含各种组件的JFrame。每个类都有自己的addComponentsToPane(...)方法,用于设置框架的内容。这在createAndShowGui()方法中使用,该方法在类的main方法中调用。

让我们称它们为类A和B。所以问题是,在A中我有一个按钮,当点击时,启动B(简单的B.main(null)调用。

所以我想知道的是,考虑到这种设置,有没有一种方法可以在B关闭时重置A中的布尔值?我在想,也许我可以在B中使用WindowListener来做一些事情,但是如果这是一个可能的解决方案,那么我还没有想出配置它来做什么。

EN

Stack Overflow用户

发布于 2013-08-08 15:24:19

基本上,你要做的就是让一个框架成为你的“主”框架,这意味着它包含了主方法。在您的示例中,这将是您的帧A。然后,使帧B(而不是JFrame)成为帧A的一部分。

类似于:

代码语言:javascript
运行
复制
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,您可以这样做:

代码语言:javascript
运行
复制
public CustomWindowB extends JDialog {  // Frame B

   public CustomWindowB(...){
      super();
      ...
      this.setVisible(true);
   }

   public void hide(){
      this.setVisisble(false);
   }

   public void show(){
      this.setVisisble(true);
   }
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18120045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档