我有一个JDialog通过bean绑定(Netbeans)与我的(独立的)控制器类绑定。我的对话框有一个“关闭”按钮。此按钮的操作属性绑定到我的控制器中的一个操作。
对话框:
对话框:
public class AppVersionCheckDialog extends javax.swing.JDialog {
...
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, controller, org.jdesktop.beansbinding.ELProperty.create("${closeButtonActionListener}"), btnOk, org.jdesktop.beansbinding.BeanProperty.create("action"));
bindingGroup.addBinding(binding);
...
}
所以基本上我得到了
public class AppVersionCheckDialogController extends AbstractController {
private final Action closeAction = new AbstractAction("Close") {
@Override
public void actionPerformed(ActionEvent e) {
// dialog.dispose() - no reference of dialog instance here
}
};
public Action getCloseButtonActionListener(){
return closeAction;
}
}
在我的控制器中。
我在控制器中没有对话框的任何引用。我也不想引入一个,因为它违反了将事物绑定在一起的整个原则。
那么如何关闭对话框?有没有一种方法可以将对话框实例绑定到我的控制器属性上?如果有,如何做?