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中.
标签:windowbuilder,eclipse,model-view-controller,swing,java 来源: https://codeday.me/bug/20191202/2086982.html