我正在尝试制作一个内存匹配的游戏,并且在单击时,我将图标图像放在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..