如何知道哪些命令可用?我尝试查找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())) {
...
}
...
}
该网站的作者知道有一个“禁用”的操作命令。他从哪里获得这些信息?
答案 0 :(得分:1)
这就是你设定的一切。
我的猜测是默认是按钮的名称。
您的修改
它可能来自两个地方。
new JButton("disable")
),默认情况下是操作命令。setActionCommand("disable")
非常重要的是要说明按设计来源无关紧要。我们不在乎它是按钮,下拉菜单还是其他任何东西。重要的是给出了“禁用”命令。这是命令模式。 : - )
答案 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
获取其名称和操作命令,因为Action
的hideActionText
属性默认为false
。另一个示例是,Key Bindings显示按钮具有由createButtonListener()
在BasicButtonUI
中创建的“已按下”和“已释放”的命名操作。 BasicButtonListener
反过来使用嵌套的UIAction
来处理这两个命令,如here所示。
答案 3 :(得分:0)
没有'有效'命令。该命令旨在供您的应用程序使用,并且不会影响Swing处理按钮的方式。
在您发布的第二个代码示例中,正在设置以下行的代码
b1.setActionCommand("disable");
对于按钮,默认情况下使用按钮的文本,如果未设置动作命令