是否可以在Window Builder for Eclipse中定义自己的“控制器”?

时间:2011-10-07 01:13:35

标签: java eclipse model-view-controller swing windowbuilder

我想使用Window Builder并同时使用MVC范例。当Window Builder将所有代码添加到一个文件时,复杂的窗口非常混乱。

我希望创建的默认文件是“视图”。

我想将控制动作(事件监听器)保存在'控制器'类中。有没有办法让Window构建器自动将事件侦听器放在您选择的类中,而不是添加到一个单片文件中?

2 个答案:

答案 0 :(得分:2)

我不知道Eclipse的Window Builder是如何工作的,但我知道NetBean创建了匿名内部类,它们为每个按钮调用自定义方法,然后允许程序员改变自定义方法的主体。如果Eclipse类似,那么您可以简单地让此自定义方法调用Control对象的方法。当然它增加了一层间接,但要让你完全控制你的控制,这是一个很小的代价。

例如,如果我创建一个名为“myButton”的JButton,然后让代码生成器为我的按钮创建一个动作,它将创建此代码:

    myButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            myButtonActionPerformed(evt);
        }
    });

并允许我在生成的方法中访问和编写代码,myButtonActionPerformed:

private void myButtonActionPerformed(java.awt.event.ActionEvent evt) {
   // TODO add your handling code here:
}

在这个方法中我会调用我的Control方法:

private void myButtonActionPerformed(java.awt.event.ActionEvent evt) {
   if (myControl != null) {
      myControl.myButtonAction();
   }
}

控件类看起来像

class MyControl {

    void myButtonAction() {
        //TODO: implement control code
    }

}

GUI需要一个setControl(MyControl myControl)方法才能将控件“注入”GUI。

答案 1 :(得分:1)

分割代码的另一种方法是使用向导创建JPanels作为您自己的控件,然后使用调色板中的“选择组件”工具(看起来像三个bean)在主窗口的布局中添加它们。简单,更清洁。虽然我明白它仍然在MVC中合并“V”和“C”......

相关问题