Swing で GUI を作成しようとしています。私の問題は、テキストフィールドがありますが、「プレースホルダー」(html のように) が必要です。textfield の paint() をオーバーライドすることでできることをあちこちで読みました。
私のコードが生成されたので、「カスタム作成コード」を使用して、生成されたコードをオーバーライドする必要があることがわかりました。
「カスタム作成コード」フィールドに入力したものは次のとおりです
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);
}
};
今のところ、textField が表示されていますが、そこには何もありません。イベントに関数を追加する必要があるかもしれませんが、よくわかりません。
どなたか手を貸していただけると助かります。
編集:これが私がやりたいことのデモです:http://davidwalsh.name/demo/html5-placeholder.php