关于Java Swing 中focuslistener 不能正确触发的问题
我是一个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("-请输入书名-"); } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不是这样的啊,前面几个都正确显示了,但是这个出了问题。我重写的第一个方法就是focusgained啊。然后我觉得问题应该是处在focuslost,但是我不知道具体是什么原因
不好意思,我理解错了。我知道错在哪里了。非常感谢你的回答。
1 . 你这个写得不规范呀.首先这些提示信息应该抽取出来,至少要作为常量定义.
2. 关于你的问题,新建这个输入空间的时候,直接设置defaultText为"-请输入书名-"就行.因为确实没有gainFocus呀.