Skip to content
Snippets Groups Projects
Forked from cse332-20su / p2
41 commits behind the upstream repository.
HintTextField.java 1.12 KiB
package chat;

import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;

import javax.swing.JTextField;

public class HintTextField extends JTextField {
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    public HintTextField(String hint) {
        this._hint = hint;
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        if (getText().length() == 0) {
            int h = getHeight();
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            Insets ins = getInsets();
            FontMetrics fm = g.getFontMetrics();
            int c0 = getBackground().getRGB();
            int c1 = getForeground().getRGB();
            int m = 0xfefefefe;
            int c2 = ((c0 & m) >>> 1) + ((c1 & m) >>> 1);
            g.setColor(new Color(c2, true));
            g.drawString(this._hint, ins.left, h / 2 + fm.getAscent() / 2 - 2);
        }
    }

    private final String _hint;
}