All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.fmj.ejmf.toolkit.gui.controls.BasicIconButton Maven / Gradle / Ivy

package net.sf.fmj.ejmf.toolkit.gui.controls;

import java.awt.*;

import javax.swing.*;

/**
 *
 * @author Ken Larson
 *
 */
public class BasicIconButton extends JButton implements SwingConstants
{
    private final ImageIcon icon;
    private final ImageIcon disabledIcon;
    private final Dimension size;

    public BasicIconButton(ImageIcon icon, ImageIcon disabledIcon)
    {
        // setBackground(UIManager.getColor("control"));
        this.icon = icon;
        this.disabledIcon = disabledIcon;
        this.size = new Dimension(icon.getIconWidth(), icon.getIconHeight());
    }

    /**
     * Don't let button get so small that icon is unrecognizable.
     */
    @Override
    public Dimension getMinimumSize()
    {
        return size;
    }

    @Override
    public Dimension getPreferredSize()
    {
        return size;
    }

    /**
     * Always return false.
     */
    @Override
    public boolean isFocusTraversable()
    {
        return false;
    }

    @Override
    public void paint(Graphics g)
    {
        final boolean isPressed = getModel().isPressed();
        final boolean isEnabled = isEnabled();

        g.setColor(UIManager.getColor("control"));
        g.fillRect(0, 0, size.width, size.height);
        if (isEnabled)
            g.drawImage(icon.getImage(), 0, 0, size.width, size.height, null);
        else
            g.drawImage(disabledIcon.getImage(), 0, 0, size.width, size.height,
                    null);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy