package com.quiltplayer.view.swing.buttons; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.Ellipse2D; import javax.swing.JButton; import com.quiltplayer.view.swing.ColorConstantsDark; import com.quiltplayer.view.swing.FontFactory; /** * Default text button implementation. * * @author Vlado Palczynski. */ public class QTextButton extends JButton { private static final long serialVersionUID = 1L; public QTextButton(String label) { super(label); setDefaults(); } private void setDefaults() { setFocusable(false); setForeground(new Color(220, 220, 220)); setBackground(ColorConstantsDark.BACKGROUND); setContentAreaFilled(false); setFont(FontFactory.getFont(16f)); } // Hit detection. Shape shape; public boolean contains(int x, int y) { // If the button has changed size, // make a new shape object. if (shape == null || !shape.getBounds().equals(getBounds())) { shape = new Ellipse2D.Float(0, 0, getWidth(), getHeight()); } return shape.contains(x, y); } /* * (non-Javadoc) * * @see javax.swing.JComponent#paint(java.awt.Graphics) */ @Override public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); super.paint(g); } }