以编程方式取消焦点文本框?

4

在我的看法中,我只有一个可编辑的内容:文本框中的文本。问题是,作为用户,在文本框获得焦点后,永远无法摆脱焦点(因为没有其他可关注的东西)。我想在用户按下Enter键时从文本框中移除焦点。我知道如何对按下Enter键做出反应,但我不知道如何以编程方式取消控件/文本框的焦点?

谢谢任何提示!


尝试使用以下函数: http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#setFocused(boolean) 并将参数设置为“false”。 - aclowkay
谢谢,但是您链接的是我的问题,而不是可能已经回答了我的另一个问题;-) - stefan.at.kotlin
2个回答

9

2
如果你在initialize()方法中使用Platform.RunLater包装textField.getParent.requestFocus()调用,那么你就不需要额外的回车键逻辑 :) - invariant
实际上,我希望在用户编辑文本字段并通过按Enter键确认更改后,将焦点移除 :-) - stefan.at.kotlin
嗯,好的,我误解了你的问题 :) - invariant

0

谢谢,但不幸的是这个方法是受保护的,而且不是公共的,所以我不能在没有子类化TextField的情况下访问它,这似乎有点过度。我错过了什么吗?取消焦点JavaFX控件不应该那么难 ): - stefan.at.kotlin
你可以通过请求不同的TextField的焦点来作弊,例如一个不可见的TextField ;-) - aclowkay
嗯,接下来的问题是是否可以聚焦一个不可见的TextField :P 我仍然需要子类化一个。也许这是个好主意,但听起来不太直观(不是你的错),我会再等一会看看是否有更简单/更自然的方法。 - stefan.at.kotlin
嗯,实际上你离解决方法很接近了:请求另一个控件获得焦点,这个控件不一定是文本框;-) - stefan.at.kotlin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接