动作命令与动作类?

Joe*_*rdi 6 java user-interface swing

向那里的Swing大师喊出来!!

我已经做了几年的Swing编程,但一直都不清楚这一点.

如您所知,Swing/AWT为您提供了几种在单击按钮时执行特定操作的方法.我已经看到它在我所使用的应用程序中完成了几种不同的方式.我目前正在开展的项目倾向于采用这种方法:

someButton.setActionCommand("mycommand");
someButton.addActionListener(listener);
Run Code Online (Sandbox Code Playgroud)

--snip--

public void actionPerformed(ActionEvent event) {
    String command = event.getActionCommand();
    if (command.equals("mycommand"))
       doThis();
    else if (command.equals("someothercommand"))
       doThat();
etc.
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎有点笨拙 - 这种编程风格有什么好处,还是使用Swing更好Action

或者是否存在不同方法更好/更差的不同情况?

jjn*_*guy 4

IMO,最好为操作使用单独的侦听器。

这样,您就可以将应发生的操作委托给 Swing。您不必比较字符串来决定要做什么。

对我来说,用一个巨大的ActionListener动作来完成多个动作就像打破了模式。