Почему мой JToggleButton не принимает мой setDisabledIcon()?
Я пытаюсь снять кожу JToggleButton
с 2 значками по умолчанию и состоянием переключения. Почему бы не изменить его отображение в любом случае, хотя я установил значок для обоих состояний?
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);
}
}
1 ответ
Решение
Значок отключен - это значок, который будет использоваться, когда ваш JToggleButton будет отключен, выполнив:
btn.setEnabled(false);
И не имеет ничего общего с состоянием isSelected.
Вы можете сделать это вручную, изменив значок, используя прослушиватель для выбранного состояния. Или вы могли бы использовать setSelectedIcon()
метод для этого.