Java - Platzhalter auf dem Textfeld

Ich versuche mit Swing eine GUI zu erstellen. Mein Problem ist, ich habe ein Textfeld, aber ich möchte, dass es einen "Platzhalter" hat (wie in HTML). Ich habe hier und da gelesen, dass dies durch Überschreiben des paint () des Textfelds geschehen kann.

Da mein Code generiert wurde, habe ich festgestellt, dass ich den "benutzerdefinierten Erstellungscode" verwenden muss, um den generierten Code zu überschreiben.

Folgendes habe ich in das Feld "Benutzerdefinierter Erstellungscode" eingegeben

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);
    }
}

Dies erzeugt die folgende Ausgabe

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);
    }
};

Im Moment sehe ich das Textfeld, aber es ist nichts drin. Vielleicht muss ich einem Ereignis eine Funktion hinzufügen, aber ich bin mir nicht sicher.

Ich wäre dankbar, wenn jemand mithelfen könnte.

EDIT: Hier ist eine Demo von dem, was ich tun möchte:http://davidwalsh.name/demo/html5-placeholder.php

Antworten auf die Frage(3)

Ihre Antwort auf die Frage