2010-08-18 72 views
0

我有一个Mediator.java可以完成所有功能。还有RecordGenerationJPanel.java来保存记录的信息.NewApplicationJPanel.java是主屏幕,当我点击jbtnGenerate时,它将显示RecordGenerationJPanel并在Mediator类中执行showGern方法。应该创建另一个Jpanel?

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

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

回答

0

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

在你的情况,我真的会复制现有的RecordGenerationJPanel到一个新的类并修改它来满足你的需求。

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

+0

thx,我会试试 – daydream 2010-08-18 09:41:42

+0

在这种情况下,在将现有类复制到新类并修改它之后,是否应该在新类中更改组件名称而不是与原始类相同?或者我可以在两个课程中使用相同的名称?提前致谢。 – daydream 2010-08-19 06:55:47

+0

名称应反映字段或方法的用途。如果其他班级的名字对你的班级有意义,那么保留它们。从技术上讲,没有必要选择不同的名称。询问你的团队或主管是否有其他命名约定(他们可能有一些!) – 2010-08-19 07:12:46

0

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

您可以通过实施ActionListener并将其附加到复选框来启用/禁用组件。

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 

     } 
    }); 

希望这会有所帮助。

相关问题