Почему мой 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() метод для этого.

Другие вопросы по тегам