/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.swing.component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JTextField;
import javax.swing.text.Document;
/**
* textField with placeHolder
* @see http://stackoverflow.com/questions/16213836/java-swing-jtextfield-set-placeholder
* @author taktod
*/
public class JPlaceholderTextField extends JTextField {
private static final long serialVersionUID = 8838799910774222615L;
private String placeholder = null;
public JPlaceholderTextField() {
}
public JPlaceholderTextField(
final Document pDoc,
final String pText,
final int pColumns) {
super(pDoc, pText, pColumns);
}
public JPlaceholderTextField(final String pText) {
super(pText);
}
public JPlaceholderTextField(final int pColumns) {
super(pColumns);
}
public JPlaceholderTextField(final String pText, final int pColumns) {
super(pText, pColumns);
}
public String getPlaceholder() {
return placeholder;
}
public void setPlaceholder(String placeholder) {
this.placeholder = placeholder;
}
@Override
protected void paintComponent(Graphics pG) {
super.paintComponent(pG);
if(placeholder.length() == 0 || getText().length() > 0) {
return;
}
final Graphics2D g = (Graphics2D)pG;
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(getDisabledTextColor());
g.drawString(placeholder, getInsets().left, pG.getFontMetrics().getMaxAscent() + getInsets().top);
}
}