0

在阅读了一些帖子之后,我不确定这两种实现 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));
4

1 回答 1

3
  • 恕我直言,最好只有一个Swing Action

  • 如果您例如启用/禁用Swing Action它应该启用/禁用JMenuandJButton以及。

于 2013-06-14T10:47:51.093 回答