如何在 Java 中将字体样式转换为字体粗细?

How do I convert font style to font weight in Java?

我想在 JavaFx 中的 TextFlow 中将特定的 ont 设置为 Text

但是,Font 只有 static .font() 个方法,需要 FontWeight 个实例。

如何将 "Regular" 之类的字体样式转换为 FontWeight 实例? Font的final字段没有"Regular"。

对于 "Regular" 样式,只需使用一种静态方法获取字体名称 and/or 大小:

text.setFont(Font.font(12)); // 12 point, default font family

text.setFont(Font.font("Serif")); // default font size

text.setFont(Font.font("Serif", 12)); // 12 point serif...

FontWeight enum specifies the "weight" of the font (i.e. bold, extra bold, light, etc); its default value is FontWeight.NORMAL.

FontPosture enum specifies whether or not the font is italic; it's values are FontPosture.REGULAR and FontPosture.ITALIC.

Font.font(...) 方法被重载以获取字体名称、大小、粗细和姿势的大多数组合,如果未提供则恢复为默认值。所以

text.setFont(Font.font("Serif", 12));

相当于

text.setFont(Font.font("Serif", FontWeight.NORMAL, FontPosture.REGULAR, 12));