【问题标题】:Javafx Textfield textaligment breaks on font changeJavafx Textfield textalignment 在字体更改时中断
【发布时间】:2014-03-19 12:04:11
【问题描述】:

我尝试在 JavaFX 中构建一个计算器,我想在显示一定数量的数字时动态更改字体大小,以便它适合。

当我将文本对齐设置为向左时,这可以按我的意愿工作。 但是,当我在右侧使用任何文本对齐时,这实际上不起作用,它会出错。

更具体的看下面的图片:

这是启动时的默认大小:

http://www7.pic-upload.de/19.02.14/8xjsfv1awtl1.jpg

然后我改变字体大小:

http://www7.pic-upload.de/19.02.14/9518liqv4ebw.jpg

你可以看到对齐被破坏了...... 但有趣的是,当您单击文本字段时,它会自行修复,并且看起来像这样:(由于声誉限制废话,没有链接)

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="" />

应用程序.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;");

【问题讨论】:

  • 您的文本字段不可编辑。没有看到你的关键听众就很难说出一些事情。
  • 我不认为可编辑部分是原因,我的意思是当对齐在左侧时它可以工作。另外我还没有实现它,我首先用一个按钮尝试了它并得到了这些结果。除了我按下的 Mouseevent 按钮之外,没有涉及任何侦听器,但它运行的唯一代码是我最后编写的代码。

标签: java css fonts alignment javafx


【解决方案1】:

这似乎是一个错误。解决方法是使用javafx.scene.control.Label 而不是TextField

【讨论】:

  • 我会给它一个 bash 并报告回来
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
相关资源
最近更新 更多