如何在jbutton上删除图标



我正在尝试制作一个内存匹配的游戏,并且在单击时,我将图标图像放在jbutton上。我的问题是,有没有办法从jbutton中删除图标?当用户单击时,我想这样做,显示图像,如果用户点击的第二个按钮与第一个按钮没有相同的图像,则它消失了...任何想法?

简单,将图标设置为 null。它没有图标,因此将其删除。

button.setIcon(null);

使用以下代码:

  JButton button = new JButton();
  button.setIcon(null);

做到这一点的最佳方法是用相同大小的透明图标替换现有图标。这将确保按钮不会更改大小,并可能会干扰布局中发生后发生的其他GUI元素的放置。例如

BufferedImage ourIcon = ...
BufferedImage invisibleIcon = new BufferedImage(
    ourIcon.getWidth(), ourIcon.getHeight(), BufferedImage.TYPE_INT_ARGB);

然后,简单:

// use a JToggleButton instead of a JButton - it will remain pressed
JToggleButton button = new JToggleButton(new ImageIcon(ourIcon));
button.setPressedIcon(new ImageIcon(invisibleIcon));
// start a timer to change the state back, if required..

最新更新