连接两个JFrame并在它们之间传递信息

时间:2013-12-11 11:55:20

标签: java swing jframe

所以我刚开始使用Netbeans GUI编辑器,我有一个需要在多个帧之间切换的程序,为了组织项目中的组织目的,我希望每个帧都是一个完全独立的类。我需要将什么代码放入按钮以在帧之间切换?到目前为止我唯一发现的是:

new jFrame1().dispose();
new jFrame2().setVisible(true);

但是,我无法将信息从JFrame传递到另一个{。}。

2 个答案:

答案 0 :(得分:0)

在它们之间传递信息可以使用Observer模式。 或者使用另一个类,并在其上创建静态字段。

答案 1 :(得分:0)

看看MVC(模型视图控制器)模式。在那里你有一个模型,一个简单的Pojo,它包含GUI上显示(查看)的数据。您可以将模型从一个框架传递到另一个框架。

只是一个想法:

要将模型从一个帧传递到另一个帧,您可以使用Multiton-Pattern创建一个包含Controller的注册表。每个控制器都持有模型,控制器负责该模型。

因此,在每个JFrame中,您都可以这样做:

ControllerRegistry.getController("ControllerName").getModel()

获得模型。
您的控制器可能如下所示:

@Controller(name = "ControllerName")
class MyController {
    private MyModel model;

    public MyModel getModel(){...};
}
然后,ControllerRegistry将尝试查找具有Annotation Controller的Classpath上的所有类。然后它会尝试使用注释中的名称查找CoOntroller。 ControllerRegistry.getController() - 方法是静态的,因此您可以在没有实例的情况下随处访问它。注册表还可以缓存已知的Controller,以防止在每次调用getController()时搜索它。