gpt4 book ai didi

java - 是否可以在 Window Builder for Eclipse 中定义您自己的 'controller'?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:27 25 4
gpt4 key购买 nike

我想同时使用 Window Builder 和 MVC 范例。当 Window Builder 将所有代码添加到一个文件中时,复杂窗口会变得非常困惑。

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

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

最佳答案

我不知道 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:
}

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

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) 方法才能将控件“注入(inject)”到 GUI 中。

关于java - 是否可以在 Window Builder for Eclipse 中定义您自己的 'controller'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com