我有一个带有设置按钮的程序。此按钮具有显示图像的图像图标。关于如何在按下操作时执行操作的任何提示。这是代码

JButton imageButton = new JButton(new ImageIcon("/Users/Sam/Programming/Files/gears.png"));


它工作正常。但是当我想使用

else if(ae.getActionCommand().equals(imageButton)){//doStuff}


它不起作用。我的动作预设方法有效,在这里

public void actionPerformed(ActionEvent ae)
{}

最佳答案

您的ActionListerner没有响应,因为getActionCommand()应该返回一个String。在这种情况下,它应该是JButton的名称。

 else if(ae.getActionCommand().equals(imageButton.getText())){//doStuff}


将其更改为imageButton.getText()应该可以解决该问题。

如果不确定,只需通过setActionCommand()手动设置ActionCommand并使用相同的String来验证.equals()方法中的getActionCommand。

09-09 17:06