我正在尝试使用Swing创建GUI。我的问题是,我有一个文本框,但我希望它有一个“占位符”(如在HTML中)。我在这里和那里读到它可以通过覆盖文本字段的paint()来完成。Java - 文本域上的占位符
由于我的代码是生成的,我发现我需要使用“自定义创建代码”来覆盖生成的代码。
以下是我已经把在“自定义创建代码”字段
new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if (test == null || test.length() < 1) {
g.setColor(Color.red);
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
}
这将生成以下输出
javax.swing.JTextField username = new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if (test == null || test.length() < 1) {
g.setColor(Color.red);
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
};
现在我看到的文本框,但没有什么在里面,也许我需要在某些事件上添加一些功能,但我不确定。
如果有人能伸出援手,我将不胜感激。
编辑:这是我所希望做一个演示:http://davidwalsh.name/demo/html5-placeholder.php
另见[此重复提问]的答案(https://stackoverflow.com/q/16213836/642706)。 –