package beast.app.draw; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import javax.swing.JLabel; /** * Miniature round label */ public class SmallLabel extends JLabel { private static final long serialVersionUID = 1L; public Color m_circleColor = Color.blue; public SmallLabel(String label, Color circleColor) { super(label); //this.label = label; enableEvents(AWTEvent.MOUSE_EVENT_MASK); setBackground(new Color(208, 208, 255)); setPreferredSize(new Dimension(15, 15)); setSize(15, 15); setMinimumSize(new Dimension(15, 15)); setMaximumSize(new Dimension(15, 15)); m_circleColor = circleColor; super.setVisible(true); } // c'tor /** * paints the SmallButton */ @Override public void paint(Graphics g) { if (m_bIsEnabled) { int s = 14; GradientPaint m_gradientPaint = new GradientPaint(new Point(0, 0), Color.WHITE, new Point(getWidth(), getHeight()), m_circleColor); ((Graphics2D) g).setPaint(m_gradientPaint); //g.setColor(m_circleColor); g.fillArc(0, 0, s, s, 0, 360); g.setColor(getBackground().darker().darker().darker()); g.drawArc(0, 0, s, s, 0, 360); Font f = getFont(); if (f != null) { FontMetrics fm = getFontMetrics(getFont()); g.setColor(getForeground()); g.drawString(getText(), s / 2 - fm.stringWidth(getText()) / 2 + 0, s / 2 + fm.getMaxDescent() + 1); } } } // paint boolean m_bIsEnabled = true; @Override public void setVisible(boolean isEnabled) { m_bIsEnabled = isEnabled; } } // class SmallButton