Java - espaço reservado no campo de texto

Estou tentando criar uma GUI com o Swing. Meu problema é que eu tenho um campo de texto, mas eu quero que ele tenha um "espaço reservado" (como em html). Eu li aqui e ali que isso pode ser feito substituindo a tinta () do campo de texto.

Como meu código é gerado, descobri que preciso usar o "Código de criação customizado" para substituir o código que foi gerado.

Aqui está o que eu coloquei no campo "Custom Creation Code"

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

Isso gera a seguinte saída

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

Por enquanto eu vejo o textField mas não há nada nele, talvez eu precise adicionar alguma função em algum evento, mas não tenho certeza.

Eu ficaria grato se alguém pudesse dar uma mão.

EDIT: Aqui está uma demonstração do que eu quero fazer:http://davidwalsh.name/demo/html5-placeholder.php

questionAnswers(3)

yourAnswerToTheQuestion