ColorIcon.java Source code

Java tutorial

Introduction

Here is the source code for ColorIcon.java

Source

//
//
//   ColorIcon
//
//   Copyright (C) by Andrea Carboni.
//   This file may be distributed under the terms of the LGPL license.
//

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.Icon;

//

public class ColorIcon implements Icon {
    private int iWidth;
    private int iHeight;

    private Color color;
    private Color border;
    private Insets insets;

    //---------------------------------------------------------------------------

    public ColorIcon() {
        this(32, 16);
    }

    //---------------------------------------------------------------------------

    public ColorIcon(int width, int height) {
        this(width, height, Color.black);
    }

    //---------------------------------------------------------------------------

    public ColorIcon(int width, int height, Color c) {
        iWidth = width;
        iHeight = height;

        color = c;
        border = Color.black;
        insets = new Insets(1, 1, 1, 1);
    }

    //---------------------------------------------------------------------------

    public void setColor(Color c) {
        color = c;
    }

    //---------------------------------------------------------------------------

    public Color getColor() {
        return color;
    }

    //---------------------------------------------------------------------------

    public void setBorderColor(Color c) {
        border = c;
    }

    //---------------------------------------------------------------------------
    //---
    //--- Icon interface methods
    //---
    //---------------------------------------------------------------------------

    public int getIconWidth() {
        return iWidth;
    }

    //---------------------------------------------------------------------------

    public int getIconHeight() {
        return iHeight;
    }

    //---------------------------------------------------------------------------

    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.setColor(border);
        g.drawRect(x, y, iWidth - 1, iHeight - 2);

        x += insets.left;
        y += insets.top;

        int w = iWidth - insets.left - insets.right;
        int h = iHeight - insets.top - insets.bottom - 1;

        g.setColor(color);
        g.fillRect(x, y, w, h);
    }
}