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

我想同时使用Window Builder和MVC范例.当Window Builder将所有代码添加到一个文件中时,它对于一个复杂的窗口来说非常混乱.

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

我想将控制动作(事件侦听器)保留在“ controller”类中.有没有一种方法可以让“窗口”构建器自动将事件侦听器放入您选择的类中,而不是添加到一个整体文件中?

最佳答案
我不知道Eclipse的Window Builder如何工作,但我知道NetBeans创建匿名内部类,这些内部类为每个按钮调用一个自定义方法,然后允许程序员更改该自定义方法的主体.如果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中.

转载注明原文:java-是否可以在Window Builder for Eclipse中定义自己的“控制器”? - 代码日志