我尝试在JavaFX中构建一个计算器,我希望在显示器上显示一定数量的数字时动态更改字体大小,以便它适合。
当我将文本对齐设置为左边时,这就像我想要的那样。 但是,当我在右侧使用任何文本对齐时,这确实不起作用,它会出错。
更具体地说,请看下面的图片:
这是启动时的默认大小:
http://www7.pic-upload.de/19.02.14/8xjsfv1awtl1.jpg
然后我改变字体大小:
http://www7.pic-upload.de/19.02.14/9518liqv4ebw.jpg
你可以看到对齐被破坏了.... 但有趣的是,当你点击进入Textfield时它会自行修复并且看起来像这样:(因为信誉限制废话没有链接)
www7.pic-upload.de/19.02.14/5e3ddqyt575o.jpg
有解决方法吗?以下是我的代码的一些示例:
GUI.fxml
<TextField fx:id="display" alignment="BASELINE_RIGHT" cache="false" editable="false" layoutX="18.0" layoutY="17.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onKeyPressed="#keylistener" prefHeight="54.0" prefWidth="206.0" promptText="" styleClass="textcustom, rand, backgroundfield" text="" />
Application.css
.background {
-fx-background-color: #4682B4;
}
.backgroundfield {
-fx-background-color: #F5F5F5;
}
.button {
-fx-background-color: #FFF5EE;
}
.textcustom{
-fx-font: 26px "Serif";
}
.rand{
-fx-border-style: solid;
-fx-border-color: black ;
-fx-border-width: 1px;
}
更改字体的Java代码:
display.setStyle("-fx-font: 18px Serif;");
答案 0 :(得分:0)
这似乎是一个错误。解决方法可以是使用javafx.scene.control.Label
而不是TextField
。