如何使用多个条件的视图,每个条件禁用/启用不同的组件?

时间:2013-03-08 09:36:12

标签: java swing oop

创建视图时(在本例中为Swing面板),您可以添加多个组件,如按钮,标签,文本字段等。

然后你有一个这个视图的控制器。控制器将为不同型号使用该视图。每个模型都需要启用/禁用不同的组件(并非所有组件都应始终处于活动状态)。我到目前为止所做的是在名为example carMode()的视图中创建一个方法,该方法在视图中执行所需的配置,并且我在控制器中根据某些条件调用此方法。

控制器代码:

if (something == car) { view.carMode() }

但是,有时您需要多个不同的状态才能查看,我想知道这种方法是否可以被更好的方法取代?

2 个答案:

答案 0 :(得分:1)

考虑使用enum,其中元素实现公共接口以实现strategy pattern。您可以让每个元素直接实现接口,如oulined here,或者让每个元素都有一个实现接口的实例变量,如图here所示。要操纵视图,具体实现可以执行以下任何操作:

  • 通过启用和禁用组件来配置单个面板。

  • CardLayout

  • 中选择特定面板
  • 导航至JTabbedPane

  • 中的特定面板

答案 1 :(得分:0)

更好的方法是通用视图。创建一个viewBase类,它包含可以在视图之间共享的东西。然后创建专门的视图。每种模式一个。 控制器可以初始化specefic视图。

if(sometin == car) { view = new CarView()}

第二个优点是你有specefic文件中的specefic视图的东西。这更灵活,更简单