我是一个java新手,最近在写一个界面。在写textfield的focuslistener的时候遇到了一个问题:我写了几个界面,前面几个都能很好的实现提示信息的显示和隐藏,但是最后一个在没有焦点的时候不能正常显示提示信息,需要先点击获得焦点,再失去焦点,才能正常显示。
希望各位大大帮忙回答,万分感谢。
这是正常显示的图:
这是出现问题的图:
这是focuslistener的源码:
class ssListener implements FocusListener{ @Override public void focusGained(FocusEvent arg0) { // TODO Auto-generated method stub if("-请输入书名-".equalsIgnoreCase(ssjtf.getText())) ssjtf.setText(""); } @Override public void focusLost(FocusEvent arg0) { // TODO Auto-generated method stub if("".equals(ssjtf.getText().trim())){ ssjtf.setText("-请输入书名-"); } } }
1 . 你这个写得不规范呀.首先这些提示信息应该抽取出来,至少要作为常量定义.
2. 关于你的问题,新建这个输入空间的时候,直接设置defaultText为"-请输入书名-"就行.因为确实没有gainFocus呀.
######不好意思,我理解错了。我知道错在哪里了。非常感谢你的回答。######不是这样的啊,前面几个都正确显示了,但是这个出了问题。我重写的第一个方法就是focusgained啊。然后我觉得问题应该是处在focuslost,但是我不知道具体是什么原因
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。