メッセージをデフォルトとして含むJTextFieldを作成したいと思います。しかし、適切なテキストとしてではなく、JTextField内に何を入力するかについてのコメントとして。したがって、jtf.getText()と入力すると、そこに出力されたのは単なるコメントであるため、nullまたは空を返します。それをクリックすると消えて、好きなように書くことができます。そのようなことをする方法はありますか?
あなたが欲しいのはinput hint
テキストフィールドで、次の画像のようになります。
これを実行できる xswingx ライブラリを確認してください。
考えられる手法は、最初にデフォルトの文字列をtextFieldのテキストとして設定することです。
JTextField myField = new JTextField("Default Text");
次に、FocusListener
を使用して、ユーザーが要素にフォーカスを置くと、テキストが消えるようにします。
myField.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
myField.setText("");
}
public void focusLost(FocusEvent e) {
// nothing
}
});
ただし、注意が必要です。ユーザーがテキストフィールドにフォーカスを設定しない場合、getText()はデフォルトの文字列を返します。したがって、テキストフィールドにフォーカスがあったかどうかを示すブール値を管理することをお勧めします。
textFieldInstance.setToolTip ヘルプ:
textFieldInstance.setToolTip("Tool tip for text field");