package org.jmeld.ui.swing; import org.jmeld.ui.util.Colors; import javax.swing.*; import java.awt.*; public class GradientLabel extends JLabel { private Color fromColor; private Color toColor; public GradientLabel(String text) { super(text); initialize(); } private void initialize() { setOpaque(false); setGradientColor(Colors.getDarkLookAndFeelColor()); setForeground(Color.white); } public GradientLabel() { super(); initialize(); } public void setGradientColor(Color fromColor) { setGradientColor(fromColor, new Color(fromColor.getRed(), fromColor .getGreen(), fromColor.getBlue(), 0)); } public void setGradientColor(Color fromColor, Color toColor) { this.fromColor = fromColor; this.toColor = toColor; } public Color getFromColor() { return fromColor; } public Color getToColor() { return toColor; } public void paint(Graphics g) { Rectangle r; GradientPaint paint; Graphics2D g2; g2 = (Graphics2D) g; r = getBounds(); paint = new GradientPaint(0, 0, fromColor, (int) (r.width / 1.10), r.height, toColor); g2.setPaint(paint); g2.fillRect(0, 0, r.width, r.height); super.paint(g); } }