web-dev-qa-db-ja.com

JTextFieldにデフォルトのメッセージを表示する方法java

メッセージをデフォルトとして含むJTextFieldを作成したいと思います。しかし、適切なテキストとしてではなく、JTextField内に何を入力するかについてのコメントとして。したがって、jtf.getText()と入力すると、そこに出力されたのは単なるコメントであるため、nullまたは空を返します。それをクリックすると消えて、好きなように書くことができます。そのようなことをする方法はありますか?

あなたが欲しいのはinput hintテキストフィールドで、次の画像のようになります。

input hint

これを実行できる xswingx ライブラリを確認してください。

5
iTech

考えられる手法は、最初にデフォルトの文字列を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()はデフォルトの文字列を返します。したがって、テキストフィールドにフォーカスがあったかどうかを示すブール値を管理することをお勧めします。

10
Cyrille Ka

textFieldInstance.setToolTip ヘルプ:

textFieldInstance.setToolTip("Tool tip for text field");
2
hd1