GradientLabel.java Source code

Java tutorial

Introduction

Here is the source code for GradientLabel.java

Source

/*
 *  soapUI, copyright (C) 2004-2009 eviware.com 
 *
 *  soapUI is free software; you can redistribute it and/or modify it under the 
 *  terms of version 2.1 of the GNU Lesser General Public License as published by 
 *  the Free Software Foundation.
 *
 *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
 *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 *  See the GNU Lesser General Public License for more details at gnu.org.
 */

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;

import javax.swing.JLabel;

public class GradientLabel extends JLabel {
    // ------------------------------ FIELDS ------------------------------

    private Color start;
    private Color end;

    // --------------------------- CONSTRUCTORS ---------------------------

    public GradientLabel(String text) {
        super(text);

        start = Color.LIGHT_GRAY;
        end = getBackground();
    }

    public GradientLabel(String text, Color start, Color end) {
        super(text);
        this.start = start;
        this.end = end;
    }

    // -------------------------- OTHER METHODS --------------------------

    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create the gradient paint
        GradientPaint paint = new GradientPaint(0, 0, start, width, height, end, true);

        // we need to cast to Graphics2D for this operation
        Graphics2D g2d = (Graphics2D) g;

        // save the old paint
        Paint oldPaint = g2d.getPaint();

        // set the paint to use for this operation
        g2d.setPaint(paint);

        // fill the background using the paint
        g2d.fillRect(0, 0, width, height);

        // restore the original paint
        g2d.setPaint(oldPaint);

        super.paint(g);
    }
}