为什么我的JToggleButton不接受我的setDisabledIcon()?

时间:2014-01-29 23:10:07

标签: java swing icons jtogglebutton

我正在尝试使用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);
    }
}

1 个答案:

答案 0 :(得分:3)

已禁用图标是JToggleButton通过执行禁用时将使用的图标:

btn.setEnabled(false);

isSelected 状态无关。

您可以通过使用所选状态的侦听器更改图标来手动执行此操作。或者您可以使用setSelectedIcon()方法。