我正在嘗試使用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)。 –