如何解决JavaFX更改字体大小会导致微小的文本显示几分之一秒
我正在制作交叉数字益智游戏(带有数字的交叉单词)。对于实际的拼图本身,我有一个包含堆叠窗格(拼图网格的正方形)的网格窗格。一些堆栈窗格的角落有标签来表示问题的开始,而另一些窗格则具有文本字段供用户编写答案。我已在每个堆栈窗格中添加了一个侦听器,以便当其高度发生变化时,它还将更改附加到该堆栈窗格的文本字段的字体大小。这是代码:
ChangeListener<Number> squareSizeListener = (observable,oldValue,newValue) -> {
textField.setStyle("-fx-font-size: " + (newValue.intValue() / 4));
};
square.heightProperty().addListener(squareSizeListener);
我使用相同的侦听器来更改表示问题编号的标签的大小。 虽然这样做可以在调整窗口大小(并因此调整堆栈窗格)时更改文本字段的字体大小和问题编号,但是遇到一个奇怪的问题:在调整窗口大小时,会缩小文本的大小将会非常简短地显示而不是文字,然后很快消失。此较小的文本始终是相同的大小和颜色。就像在应用新样式之前将文本样式重置为默认样式一样。
Here is a video of what I am talking about.
我不知道为什么会这样,而且我无法在网上找到与此有关的任何信息。我尝试将堆栈窗格更改为其他容器,但遇到相同的问题。有人可以帮我弄清楚发生了什么事吗?
非常感谢!
PS。如果有人也知道该文本框的轮廓也消失了又出现了,我将不胜感激!
编辑:所以我偶然发现了一个解决方案。我不知道为什么或如何运作,但确实如此。使用setStyle更改字体后,在文本字段/标签上调用applyCss方法似乎可以解决此问题。
解决方法
所以我偶然发现了一个解决方案。我不知道为什么或如何运作,但确实如此。使用setStyle更改字体后,在文本字段/标签上调用applyCss方法似乎可以解决此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。