我想同时使用 Window Builder 和 MVC 范例。当 Window Builder 将所有代码添加到一个文件中时,复杂的窗口会变得非常混乱。
我希望创建的默认文件是“视图”。
我想将我的控制操作(事件侦听器)保留在“控制器”类中。有没有一种方法可以让 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);
}
});
并将允许我在生成的方法 myButton ActionPerformed 中访问和编写代码:
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 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)