单击按钮图标不更新
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++;
}
我现在正在尝试制作一个简单的 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++;
}