关于Java Swing 中focuslistener 不能正确触发的问题

发布于 2021-12-01 23:41:34 字数 974 浏览 773 评论 3

我是一个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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

躲猫猫 2021-12-02 12:50:33

不是这样的啊,前面几个都正确显示了,但是这个出了问题。我重写的第一个方法就是focusgained啊。然后我觉得问题应该是处在focuslost,但是我不知道具体是什么原因

天涯离梦残月幽梦 2021-12-02 12:43:29

不好意思,我理解错了。我知道错在哪里了。非常感谢你的回答。

断爱 2021-12-02 10:29:03

1 . 你这个写得不规范呀.首先这些提示信息应该抽取出来,至少要作为常量定义.

2. 关于你的问题,新建这个输入空间的时候,直接设置defaultText为"-请输入书名-"就行.因为确实没有gainFocus呀.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文