package com.quiltplayer.view.swing.labels;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.LinearGradientPaint;
import java.awt.RenderingHints;
import java.awt.geom.Point2D;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
import com.quiltplayer.view.swing.FontFactory;
public class StringOrCharLabel extends JLabel {
private static final long serialVersionUID = 1L;
private float[] dist = new float[] { 0.0f, 0.50f, 1.0f };
private Color[] gradient = { new Color(60, 60, 60), new Color(40, 40, 40), new Color(40, 40, 40) };
public StringOrCharLabel(String title) {
super(" " + title);
setDefaults();
}
public StringOrCharLabel(char character) {
super(" " + character);
setDefaults();
}
private void setDefaults() {
setLayout(new MigLayout("fill"));
setOpaque(false);
setForeground(Color.WHITE);
setFont(FontFactory.getFont(15f));
setBorder(BorderFactory.createEmptyBorder());
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Point2D start = new Point2D.Float(0, 0);
Point2D end = new Point2D.Float(0, getHeight());
LinearGradientPaint p = new LinearGradientPaint(start, end, dist, gradient);
g2d.setPaint(p);
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 9, 9);
super.paintComponent(g2d);
}
}