java swing JTextField设置PlaceHolder

我创建了一个JTextField,现在我想在该JTextField上设置占位符,但我不知道如何在JTextField上设置占位符?请帮助如何在JTextField上设置占位符文本

JTextField database=new JTextField("Enter Data Base Name");

database.setPreferredSize(database.getPreferredSize());

database.setText("");

那是我现在在该代码中的文本字段代码,我想设置占位符,如何在该JTextField上设置占位符

回答:

试试这个课程:

package playground;

import java.awt.*;

import javax.swing.*;

import javax.swing.text.Document;

@SuppressWarnings("serial")

public class PlaceholderTextField extends JTextField {

public static void main(final String[] args) {

final PlaceholderTextField tf = new PlaceholderTextField("");

tf.setColumns(20);

tf.setPlaceholder("All your base are belong to us!");

final Font f = tf.getFont();

tf.setFont(new Font(f.getName(), f.getStyle(), 30));

JOptionPane.showMessageDialog(null, tf);

}

private String placeholder;

public PlaceholderTextField() {

}

public PlaceholderTextField(

final Document pDoc,

final String pText,

final int pColumns)

{

super(pDoc, pText, pColumns);

}

public PlaceholderTextField(final int pColumns) {

super(pColumns);

}

public PlaceholderTextField(final String pText) {

super(pText);

}

public PlaceholderTextField(final String pText, final int pColumns) {

super(pText, pColumns);

}

public String getPlaceholder() {

return placeholder;

}

@Override

protected void paintComponent(final Graphics pG) {

super.paintComponent(pG);

if (placeholder == null || 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);

}

public void setPlaceholder(final String s) {

placeholder = s;

}

}

以上是 java swing JTextField设置PlaceHolder 的全部内容, 来源链接: utcz.com/qa/427807.html

回到顶部