单击按钮图标不更新

Icon of Button does not Update upon clicking

我现在正在尝试制作一个简单的 Tic Tac Toe 游戏,我创建了一个带有网格布局的 JFrame 并向其中添加了 9 个按钮。现在单击其中一个按钮后,我想将其图标更改为十字形或圆形,但单击时它什么也没做

@Override
public void actionPerformed(ActionEvent e)
{
    if (e.getSource() == this)
    {
        if (counter%2 == 0)
        {
            ImageIcon cross = new ImageIcon("Cross.png");
            this.setIcon(cross);
        }
    
        if (counter%2 == 1)
        {
            ImageIcon circle = new ImageIcon("Circle.png");
            this.setIcon(circle);
        }
    
        counter++;
    }
}

Project Structure here

actionPerformed 方法确实适用于简单的 System.out.println() 语句

提前致谢!

你要明白e.getSource()的意思,就是return按钮的所有属性。你的条件e.getSource() == this return false 就是有问题。您必须设置像 new javax.swing.ImageIcon(getClass().getResource("path/img_name")).

这样的图像图标

下面是通用代码实现,因此逻辑适用于九个按钮中的任何一个:

public void jButton1ActionPerformed(ActionEvent e)
{
   JButton button = (JButton)e.getSource();

    if(counter % 2 == 0)
    {
        button.setIcon(new javax.swing.ImageIcon(getClass().getResource("Cross.png")));
    }
    else
    {
        button.setIcon(new javax.swing.ImageIcon(getClass().getResource("Circle.png")));
    }

    counter++;
}