Java 是否可以定义自己的';控制器';在Eclipse的窗口生成器中?

Java 是否可以定义自己的';控制器';在Eclipse的窗口生成器中?,java,eclipse,model-view-controller,swing,windowbuilder,Java,Eclipse,Model View Controller,Swing,Windowbuilder,我想同时使用WindowBuilder和MVC范例。当WindowBuilder将所有代码添加到一个文件中时,复杂的窗口非常混乱 我希望创建的默认文件是“视图” 我希望将我的控制操作(事件侦听器)保留在“控制器”类中。有没有办法让Window builder自动将事件侦听器放入您选择的类中,而不是添加到一个单一文件中?我不知道Eclipse的Window builder是如何工作的,但我知道NetBean创建匿名内部类,为每个按钮调用自定义方法,然后允许程序员更改自定义方法的主体。如果Eclip

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

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


我希望将我的控制操作(事件侦听器)保留在“控制器”类中。有没有办法让Window builder自动将事件侦听器放入您选择的类中,而不是添加到一个单一文件中?

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

例如,如果我创建一个名为“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:
}
在这个方法中,我会调用控件的方法:

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中。

另一种分解代码的方法是使用向导创建JPanel作为自己的控件,然后使用调色板中的“选择组件”工具(看起来像三个bean)将它们添加到主窗口的布局中。简单又干净。虽然我知道它仍然合并了MVC中的“V”和“C”