使用模型来表示视图的整体状态

时间:2011-02-26 00:56:09

标签: java swing model components

是否有标准做法来表示未链接到单个组件的用户界面的状态?

例如,Swing接口可能有一系列选项卡,其约束条件是每个给定的实体类型只能显示一个选项卡(这可以表示为HashSet)。或者消息可以给出上次执行操作的结果。或者可以将JPanel链接到单个实体实例以进行编辑。

2 个答案:

答案 0 :(得分:3)

我认为你所描述的是Model-View-ViewModel模式。这在网点土地上风靡一时。 mvvm的顶级谷歌链接也是MSDN article,提供了相当不错的概述。

答案 1 :(得分:2)

是的,为视图本身创建一个完全独立于应用程序模型的模型是完全可以接受的。 Swing已在内部执行此操作,跟踪元素的布局方式,表格中的行和列以及文本字段中的光标位置。

我建议保持您的视图模型逻辑与实际组件代码松散耦合,以便更容易维护,例如为每个不扩展实际Swing对象的责任或行为创建一个单独的类。

例如,如果我们想确保我们只有一个JFrame类型的实例,例如“选项”对话框甚至是主应用程序窗口,那么可以使用单例样式完成包含对框架的引用并在有人调用您的方法时返回它的类,如果它不存在则创建它,如果它被隐藏则使其可见。这很常见。