我正在尝试使用2个图标为JToggleButton
设置默认和切换状态。为什么它不会改变它的显示,虽然我为这两个州设置了一个图标?
package gui;
import java.awt.Image;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JToggleButton;
public class RepeatButton extends JToggleButton {
private ImageIcon repeatIcon;
private ImageIcon repeatIconUnchecked;
public RepeatButton() {
repeatIcon = new ImageIcon("media_repeat.png");
repeatIcon.setImage(repeatIcon.getImage().getScaledInstance(repeatIcon.getIconWidth()/2, repeatIcon.getIconHeight()/2,Image.SCALE_AREA_AVERAGING));
repeatIconUnchecked = new ImageIcon("media_repeat_uncheckedalt.png");
repeatIconUnchecked.setImage(repeatIconUnchecked.getImage().getScaledInstance(repeatIconUnchecked.getIconWidth()/2, repeatIconUnchecked.getIconHeight()/2,Image.SCALE_AREA_AVERAGING));
this.setIcon(repeatIcon);
this.setDisabledIcon(repeatIconUnchecked);
this.setBorder(null);
}
}
答案 0 :(得分:3)
已禁用图标是JToggleButton通过执行禁用时将使用的图标:
btn.setEnabled(false);
与 isSelected 状态无关。
您可以通过使用所选状态的侦听器更改图标来手动执行此操作。或者您可以使用setSelectedIcon()
方法。