应该创建另一个Jpanel?

时间:2010-08-18 09:09:04

标签: java

我有一个Mediator.java可以完成所有功能。并且RecordGenerationJPanel.java用于保存记录的信息.NewApplicationJPanel.java是主屏幕,当我单击其中的jbtnGenerate时,它将显示RecordGenerationJPanel并在Mediator类中执行showGern方法。

所有方法都是由另一个开发人员完成的,我已经要求创建一个类似于showGern方法的新类。新的showGern类应该禁用一些组合框,它还包括新的文本字段。但是只会调用主屏幕(NewApplicationJPanel)中的复选框。否则,它将调用原始的showGern方法。

我是否需要创建另一个RecordGenerationJPanel?或者,我可以在同一个RecordGenerationJPanel中执行此操作吗?如果相同,我该如何根据条件显示不同的启用或禁用以及隐藏某些文本字段。

2 个答案:

答案 0 :(得分:0)

您可以向旧版JPanel添加新的“复选框”(如您的问题中所述)。并根据复选框的状态显示/隐藏/启用/禁用组件。调用哪种方法取决于此复选框的状态。

您可以通过实现ActionListener并将其附加到Checkbox来启用/禁用组件。

   JCheckBox cb1 = new JCheckBox("Check Box 1")    
   cb1.addItemListener(new ItemListener() {
      public void itemStateChanged(ItemEvent e) {

           //enable disable components if checkbox is selected

           //enable disable components if checkbox is not selected

      }
    });

希望这有帮助。

答案 1 :(得分:0)

通常,如果RecordGenerationJPanel和请求的新类共享一些属性和方法,那么这些属性和方法应该在一个类中并由两者使用。因此,如果这是影响这些常见部分的错误修复的未来变更要求,那么您只需执行一次,并且两个面板都可以从单个修复中受益。

在您的情况下,我真的将现有的RecordGenerationJPanel复制到一个新类并修改它以满足您的要求。

如果有效,您可以开始重构并将公共部分提取到新类。