如何在JTextField中显示默认消息java

我想创建一个带有消息的JTextField作为deafult。 但不是作为正确的文本,而是作为对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");