我可以在使用swing时对方法中的组件进行分组吗?

时间:2013-11-28 09:41:07

标签: java swing oop

我觉得有时我会更方便地在方法中对组件进行分组,以使我的代码更有条理。这是因为一些组件可能具有不同的功能,或者可能变得太长,例如菜单,菜单可以具有菜单项,每个菜单项同时可以具有更多子项等等。那么在方法中组织组件是否可以?有什么优点或缺点?我的意思是这样的:

 public class MyGUI{



    public myGUI(){

       registerEvents();
       setupGUI();

     }

     public void createTextEditor(){
         ....
        }

        public void createAccountActivationPanel(){
         ...
        }

        public void createAddButton(){
        .....
        }

        public void createRemoveButton(){
        ....
        }


        public void createMenu()
        ...
        }


        public void createLabels() {
        .....
        }

        public void setupGui() {
         createTextEditor();
         createAccountActivationPanel();
         createRemoveButton();
         createAddButton();

         //and then proceed with more stuff here

         ......
        }


        public void registerEvents() {


          .....


        }
   }

1 个答案:

答案 0 :(得分:1)

组织代码并创建帮助方法总是一件好事。

一些提示:

  • 帮助方法应为private ,无需访问您班级以外的人员
  • 检查哪些方法应该只调用一次(例如:setupGui())。调用这些方法时,如果之前已调用过,则检查并抛出异常(使用boolean initialized等实例变量)。
  • 考虑创建生成并返回的工厂方法(小部件,甚至包含其他小部件的子组件)。
    示例:createAddButton()应该返回一个按钮,方法的调用者应该决定添加按钮的位置,而不是工厂方法。
  • 如果可能,请创建工厂方法static(这仅在您不需要访问任何实例变量或实例方法时才有效)。这降低了复杂性和副作用,并允许将工厂方法外部化为可重复使用的工厂类。
  • 考虑在经常需要的时候制作通用的可重用组件(例如:带有添加/编辑/删除操作的列表或表)