将ActionListeners添加到View的最佳方法

时间:2013-06-14 10:40:02

标签: java swing model-view-controller jbutton actionlistener

阅读一些帖子后,我不确定这两种实现ActionListeners的方法之间的区别。是否有好理由以某种方式进行编码?视觉解耦怎么样?

选项1:

在视图中实现getButton()/ setButton()方法,并使用这些方法在控制器中添加ActionListeners。

查看

public JButton getBtnRun() {
        return btnRun;
    }

CONTROLLER

m_view.getBtnRun().addActionListener(new ButtonListener());

选项2:

在视图中实现方法,并从控制器调用这些方法,如here

查看

public void setOpenFileAction(Action action) {
      displayText.setOpenFileButtonAction(action);
      fileMenu.add(new JMenuItem(action));
   }

CONTROLLER

view.setOpenFileAction(new OpenFileAction(view, model, "Open File",
            KeyEvent.VK_O));

1 个答案:

答案 0 :(得分:3)

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

  • 如果你是启用/禁用Swing Action它还应启用/禁用JMenuJButton