javafx - JavaFX 更改字体大小会导致小文本出现几分之一秒
问题描述
我正在制作一个交叉数字益智游戏(带数字的交叉词)。对于实际的拼图本身,我有一个包含堆栈窗格(拼图网格的正方形)的网格窗格。一些堆栈窗格的角落有标签来表示问题的开始,其中一些具有供用户编写答案的文本字段。我为每个堆栈窗格添加了一个侦听器,这样当它的高度发生变化时,它也会更改附加到该堆栈窗格的文本字段的字体大小。这是代码:
ChangeListener<Number> squareSizeListener = (observable, oldValue, newValue) -> {
textField.setStyle("-fx-font-size: " + (newValue.intValue() / 4));
};
square.heightProperty().addListener(squareSizeListener);
我使用相同的侦听器来更改表示问题编号的标签的大小。虽然这可以在我调整窗口大小(以及因此堆栈窗格)时更改文本字段的字体大小和问题编号,但我遇到了一个奇怪的问题,在调整窗口大小时,文本的较小版本将非常短暂地出现而不是文本,然后很快消失。这个较小的文本总是相同的大小和颜色。就好像它在应用新样式之前将文本样式重置为默认值一样。
我不知道为什么会发生这种情况,我也无法在网上找到任何关于此的信息。我尝试将堆栈窗格更改为不同的容器,但遇到了同样的问题。有人可以帮我弄清楚发生了什么吗?
非常感谢!
PS。如果有人也知道文本字段的轮廓也在消失和重新出现,我将非常感激!
编辑:不知何故,我偶然发现了一个解决方案。我不知道它为什么或如何工作,但确实如此。在使用 setStyle 更改字体后在文本字段/标签上调用 applyCss 方法似乎可以解决问题。
解决方案
所以不知何故,我偶然发现了一个解决方案。我不知道它为什么或如何工作,但确实如此。使用 setStyle 更改字体后在文本字段/标签上调用 applyCss 方法似乎可以解决问题。
推荐阅读
- c# - 文件夹未复制到输出目录
- javascript - 遍历对象其中值是对象数组并从对象数组的每个对象返回一个值
- python - 按索引值有条件地填充部分填充的熊猫数据框
- reactjs - react-native-fs 中的编译错误
- git - GitHub 上的软件版本中出现多个 Git 标签
- security - DB2 查询中的 IF 和 ELSE 条件以显示输出
- java - 在 PayPal REST API 中查找 Braintree BillingAgreement ID
- c++ - 构造函数是否有现代 C++ 方式来了解其“容器”类?
- c++ - 如何在不硬编码数组大小的情况下在类的初始化器列表中初始化 std::array
- regex - Raku/Perl6:如何限制匹配方法以捕获组?