如何知道Swing的getActionCommand()中的有效命令是什么?

时间:2011-03-23 02:53:38

标签: java swing

如何知道哪些命令可用?我尝试查找Java SDK,但没有发现它。

我能想到的唯一方法就是这种方式

class ButtonListener implements ActionListener {
  ButtonListener() {
  }

  public void actionPerformed(ActionEvent e) {
      System.out.println(e.getActionCommand());
  }
}

但我猜这些值必须在框架的某些部分进行硬编码。我在哪里可以找到它们?

由于

修改

以下代码为例here

public void actionPerformed(ActionEvent e) {
    if ("disable".equals(e.getActionCommand())) {
        ...
    }

    ...
 }

该网站的作者知道有一个“禁用”的操作命令。他从哪里获得这些信息?

4 个答案:

答案 0 :(得分:1)

这就是你设定的一切。

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Button.html#setActionCommand%28java.lang.String%29

我的猜测是默认是按钮的名称。

您的修改

它可能来自两个地方。

  1. 按钮的名称new JButton("disable")),默认情况下是操作命令。
  2. 这是setActionCommand("disable")
  3. 给出的命令

    非常重要的是要说明按设计来源无关紧要。我们不在乎它是按钮,下拉菜单还是其他任何东西。重要的是给出了“禁用”命令。这是命令模式。 : - )

答案 1 :(得分:1)

您可以使用setActionCommand()

来完成此操作
JButton jb = new JButton("MyButton");
jb.setActionCommand("MyButtonCommand");

编辑:

网站的作者从这行代码中“禁用”

b1.setActionCommand("disable");

答案 2 :(得分:1)

您可能会想到Action界面,其命名实例用于在各种L& Fs中建立默认key bindings。文章Key Bindings包含一个方便的实用程序来检查它们。

附录:作为一个具体示例,ClickCount中的JButton从嵌套ClickHandler获取其名称和操作命令,因为ActionhideActionText属性默认为false。另一个示例是,Key Bindings显示按钮具有由createButtonListener()BasicButtonUI中创建的“已按下”和“已释放”的命名操作。 BasicButtonListener反过来使用嵌套的UIAction来处理这两个命令,如here所示。

答案 3 :(得分:0)

没有'有效'命令。该命令旨在供您的应用程序使用,并且不会影响Swing处理按钮的方式。

在您发布的第二个代码示例中,正在设置以下行的代码

b1.setActionCommand("disable");

对于按钮,默认情况下使用按钮的文本,如果未设置动作命令