package org.korsakow.ide.ui.laf; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import com.sun.java.swing.plaf.motif.MotifLabelUI; public class KorsakowLabelUI extends MotifLabelUI { private static KorsakowLabelUI ui = new KorsakowLabelUI(); public static ComponentUI createUI(JComponent c) { return ui; } @Override public void installUI(JComponent c) { super.installUI(c); c.setBackground(UIManager.getColor("Label.background")); c.putClientProperty("ui.background2", null); } @Override public void update(Graphics g, JComponent c) { JLabel label = (JLabel)c; if (c.isOpaque()) { Color background = label.getBackground(); Color background2 = (Color)label.getClientProperty("ui.background2"); final Rectangle clip = g.getClipBounds(); Graphics2D g2 = (Graphics2D)g; if (background2 != null) { g2.setPaint(new GradientPaint(0, 0, background, 0, clip.height, background2, false)); } else { g2.setPaint(background); } g2.fill(clip); } paint(g, c); } }