【问题标题】:How to Remove an icon on a JButton?如何删除 JButton 上的图标?
【发布时间】:2014-01-22 20:47:51
【问题描述】:
我正在尝试制作一个记忆匹配游戏,并且我有一些图标图像,当我单击它时将它们放置在 JButton 上。我的问题是,有没有办法从 JButton 中删除图标?我想在用户点击时显示图像,如果用户点击的第二个按钮与第一个按钮的图像不同,那么它就会消失......有什么想法吗?
【问题讨论】:
标签:
java
swing
user-interface
intellij-idea
jbutton
【解决方案1】:
简单,设置图标为null。它没有图标,因此将其删除。
button.setIcon(null);
【解决方案2】:
使用以下代码:
JButton button = new JButton();
button.setIcon(null);
【解决方案3】:
最好的方法是用相同大小的透明图标替换现有图标。这将确保按钮不会改变大小,并且可能会干扰布局中其他 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..