2013-12-11 36 views
0

所以我刚刚开始使用Netbeans GUI编辑器,并且我有一个需要在多个帧之间切换的程序,用于组项目中的组织目的我希望每个帧都是一个完全独立的班级。我需要将哪些代码放入按钮以在帧之间切换?仅此而已,我发现的是:连接两个JFrames并在它们之间传递信息

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

但是,我不能从一个JFrame传递到另一个信息。

+3

请参阅[使用多个JFrames,好/坏实践?](http://stackoverflow.com/a/9554657/418556)这听起来好像其中一个框架应该是模式化的'JDialog'。 –

+0

使用面板而不是框架。 –

回答

0

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

0

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

只是一个想法:

从一帧传递模式到另一个,你可以使用多例,模式创建保存控制器注册表。每个控制器都有控制器负责的模型。因此,在每个JFrames的

,你会做这样的事情:

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

得到模型。
控制器看起来是这样的:那么

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

    public MyModel getModel(){...}; 
} 

的ControllerRegistry会去找有注释控制器上的类路径的所有类。然后它会尝试从注释中找到带有名称的CoOntroller。 ControllerRegistry.getController() - 方法将是静态的,这样你就可以在没有实例的情况下在任何地方访问它。注册表还可以缓存已知的控制器,以防止在每次调用getController()时搜索它。

相关问题