Sto provando a creare una GUI con Swing. Il mio problema è che ho un campo di testo, ma voglio che abbia un "segnaposto" (come in html). Leggo qui e là che può essere fatto sovrascrivendo il paint() del campo di testo.Java - segnaposto sul campo di testo
Poiché il mio codice è stato generato ho scoperto che ho bisogno di usare il "Codice di creazione personalizzata" per sovrascrivere il codice che è stato generato.
Ecco quello che ho messo in campo "Custom Codice Creazione"
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);
}
}
Questo genera il seguente output
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);
}
};
Per ora vedo la textField ma non c'è nulla in esso, forse ho bisogno di aggiungere qualche funzione su qualche evento, ma non ne sono sicuro.
Sarei grato se qualcuno potesse dare una mano.
EDIT: Ecco una demo di quello che voglio fare: http://davidwalsh.name/demo/html5-placeholder.php
Vedere anche le risposte su [questa domanda duplicato] (https://stackoverflow.com/q/16213836/642706). –