在阅读了一些帖子之后,我不确定这两种实现 ActionListeners 的方式之间的区别。有什么好的理由以一种或另一种方式编码吗?视图解耦呢?
选项1:
在视图中实现 getButton()/setButton() 方法,并使用这些方法在控制器中添加 ActionListener。
看法
public JButton getBtnRun() {
return btnRun;
}
控制器
m_view.getBtnRun().addActionListener(new ButtonListener());
选项 2:
在视图中实现方法,并从控制器调用这些方法,就像这里
看法
public void setOpenFileAction(Action action) {
displayText.setOpenFileButtonAction(action);
fileMenu.add(new JMenuItem(action));
}
控制器
view.setOpenFileAction(new OpenFileAction(view, model, "Open File",
KeyEvent.VK_O));