开发者社区> 问答> 正文

关于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("-请输入书名-");
		    }
		}
	}


展开
收起
kun坤 2020-06-09 22:31:57 671 0
1 条回答
写回答
取消 提交回答
  • 1 . 你这个写得不规范呀.首先这些提示信息应该抽取出来,至少要作为常量定义.


    2. 关于你的问题,新建这个输入空间的时候,直接设置defaultText为"-请输入书名-"就行.因为确实没有gainFocus呀.
    ######不好意思,我理解错了。我知道错在哪里了。非常感谢你的回答。######不是这样的啊,前面几个都正确显示了,但是这个出了问题。我重写的第一个方法就是focusgained啊。然后我觉得问题应该是处在focuslost,但是我不知道具体是什么原因

    2020-06-09 22:32:02
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载