package ddddbb.gui3d; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Rectangle2D; import javax.swing.JLabel; import javax.swing.JToggleButton; import ddddbb.game.Settings; @SuppressWarnings("serial") public class DSelection extends JToggleButton { float brightness = (float) Settings.brightness.getDouble(); // public DSelection(String text) { // setText(text); // setPreferredSize(new Dimension(20,16)); // } private DSelection() { setFont(new Font(Font.DIALOG,Font.PLAIN,12)); setOpaque(false); } public DSelection(int width, int height) { this(); setPreferredSize(new Dimension(width, height)); } public DSelection(int width, int height, String text) { this(); setPreferredSize(new Dimension(width, height)); setText(text); } @Override public void setText(String text) { super.setText(text); } public void paint(Graphics g) { Graphics2D gc = (Graphics2D) g; gc.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); gc.setRenderingHint( RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); // gc.setColor(Color.black); // gc.fillRect(0, 0, getWidth(), getHeight()); int w = getWidth()-1; int h = getHeight()-1; gc.setColor(new Color(brightness,brightness,brightness)); FontMetrics fm = gc.getFontMetrics(); Rectangle2D sb = fm.getStringBounds(getText(), gc); double x = (getWidth() - sb.getWidth())/2; //System.out.println(getText() + ":" + fm + ":" + sb.getWidth()); double y = (getHeight()+ sb.getHeight())/2 - fm.getDescent(); gc.drawString(getText(), (int)Math.round(x), (int)Math.round(y)); if (isSelected()) { gc.drawLine((int)Math.round(x), h, (int)Math.round(x+sb.getWidth()), h); } else { gc.setColor(Color.black); gc.drawLine((int)Math.round(x), h, (int)Math.round(x+sb.getWidth()), h); } } }