/* * Created on Apr 6, 2004 by mschilli */ package alma.acs.commandcenter.gui; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JPanel; public class LogoPanel extends JPanel { private Color startcolor; private Color endcolor; protected LogoPanel(Color start, Color end) { super(); this.startcolor = start; this.endcolor = end; this.setOpaque(false); } private int oldW; private int oldH; protected GradientPaint gradientPaint = null; @Override protected void paintComponent(Graphics g) { try { int w = getWidth(); int h = getHeight(); // optimization: reuse GradientPaint if possible if (gradientPaint == null || w != oldW || h != oldH) { gradientPaint = new GradientPaint(0, 0, startcolor, w, h, endcolor, false); oldW = w; oldH = h; } Graphics2D g2 = (Graphics2D) g; g2.setPaint(gradientPaint); g2.fillRect(0, 0, w, h); } catch (InternalError exc) { // sometimes (but rarely), there's an error in g2.fillRect(): /* java.lang.InternalError: MaskFill can only fill with colors * at sun.java2d.loops.MaskFill.makePrimitive(MaskFill.java:120) */ } super.paintComponent(g); } } //////////////////////////////////////////////////////// /// ------------------- API ------------------------ /// //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// /// ----------------- Internal --------------------- /// //////////////////////////////////////////////////////// // // // // // // // // // // // //