单独的JFrame之间的信息交换

时间:2012-08-12 12:45:43

标签: java swing oop user-interface jframe

在程序中设计gui的最佳方法是什么,用户点击按钮启动不同的jframes负责收集对象创建的信息?为了与OOP原则保持一致?

例如,用户在启动时会看到 MainFrame ,其中包含对象列表和有关对象的信息。在用户需要添加新对象的情况下,他必须单击“创建新对象”按钮。单击该按钮将启动另一个jframe,其中包含创建对象(Building)所需的字段。但是这个对象是comlex并且在其中包含另一个对象 - Box (添加Box,你单击addBoxButton和用于创建Box的字段产生的新框架)。
包含另一个对象的框 - 换向器。再次创建Commutator用户按下另一个按钮产生新帧,创建具有框架内输入的用户数据的换向器。 然后我需要把Commutator放在Box和Box中而不是建筑中。

现在 - 我在框架类之间的信息交换方面遇到了一些困难。 例如,如果在运行时创建其中一个帧,我应该如何将从一个jframe收集的信息传输到另一个?

我的问题是 - 我的GUI是设计糟糕的GUI的一个例子吗?也许最好将所有gui放在一个扩展JFrame的类中?

2 个答案:

答案 0 :(得分:1)

GUI设计的典型方法是使用MVC(模型 - 视图 - 控制器)模式,其中模型负责数据存储和操作,视图显示数据和控制器之间的连接。有很多教程可以深入解释这种模式。阅读其中一些。我相信你会找到你问题的答案。

通常,数据应该是模型,视图负责任意数量的JFrame。

答案 1 :(得分:1)

  1. 永远不要以这种方式混淆GUI ...

  2. Swing本身基于MVC原则,这就是为什么它被称为PLAF(Pluggable Look and Feel)。在保持相同模型的同时,我们可以更改视图。

  3. 尝试创建您的程序时要牢记MVC原则。

    模型 - 处理业务逻辑和数据

    VIEW - 输出的表示

    CONTROLLER - 动作完成。

  4. 为模型和视图创建单独的包。

    例如:

    com.app.view;     // This stores all of your GUI stuffs
    
    com.app.mode;     // This stores your Business Logic and the Data