【发布时间】:2013-10-10 18:35:34
【问题描述】:
在 javafx 程序中,我有一个标签,比如:
<Label style="-fx-font: 25px 'Tahoma';" text="Hello World!!" />
设计师要求我更改字体系列,很容易(我想):
<Label style="-fx-font: 25px 'Algerian';" text="Hello World!!" />
问题是屏幕上显示的新字体有一个奇怪的偏移量,使文本看起来有点高,从而弄乱了设计。
这是两个标签并排的Output Example,左边标签有 Tahoma 字体,看起来不错,而右边标签有 'HelveticaNeue' 字体,比基线高很多。
我已经部分解决了这个问题,使用 Text 组件将 Label 组件替换为将 boundsType 属性设置为“VISUAL”而不是默认的“LOGICAL”。
<Text boundsType="VISUAL" style="-fx-font-family: 'Algerian'; -fx-font-size: 25px;" text="Hellow World!!" />
但是将整个系统的 Label 更改为 Text 组件并不好,并且按钮和其他组件中的标签存在相同的问题并且难以替代。
这些字体有问题吗?有些字体可以正常工作(Arial、Lucida Sans、MS Sans Serif),而其他字体则表现出这种行为(Algerian、Helvetica)。 我在操作系统上安装了这些字体,甚至可以在 MS Word 中使用它们而不显示这些偏移量。
Label 组件上是否有与 Text 组件的 boundsType 属性相同的选项?
希望有人知道发生了什么,在此先感谢。
【问题讨论】:
-
我从未在 fxml 本身中设置字体,我总是使用 css 文件...你试过了吗?所有操作系统都会出现这种情况吗?
-
嗨 Magcus,我也使用了一个 css 文件,但在示例中使用了内联 css,以便更清晰。我正在使用 Windows,并且在同事的 MacOS 上看到了相同的行为。该应用程序最终将在 Linux 上运行,但我还没有尝试过。