Java FX:粗体和斜体样式未应用于某些字体系列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java FX:粗体和斜体样式未应用于某些字体系列相关的知识,希望对你有一定的参考价值。

在将粗体和斜体样式应用于所有字体系列时,粗体和斜体样式将应用于某些字体。在像阿尔及利亚这样的一些案例中,粗体斜体的风格并未适用。有没有办法处理这些特殊情况的阿尔及利亚和一些类似的字体系列,其粗体斜体样式不适用?

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class FontTest extends Application {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        launch();

    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        // TODO Auto-generated method stub
        Text t=new Text();
        t.setText("Abc");
        t.setX(50); 
          t.setY(50);
          Font font = Font.font("Algerian", FontWeight.BOLD, FontPosture.ITALIC, 19);

          t.setFont(font);
         Group group = new Group(t); 
          //Creating a Scene by passing the group object, height and width   
           Scene scene = new Scene(group ,200, 200); 
           primaryStage.setTitle("Sample Application"); 

           //Adding scene to the stage 
           primaryStage.setScene(scene); 

           //Displaying the contents of the stage 
           primaryStage.show();
    }

}
答案

并非所有字体都支持多种字体粗细和姿势,而Algerian字体属于只有一种单一样式的组。如果字体本身不知道如何以粗体或斜体方式呈现文本,那么JavaFX就无法神奇地知道如何这样做。

如果您需要始终显示粗体或斜体文本,则必须使用支持该文本的字体。如果您正在编写或设计模块,则应尽可能避免暴露更改字体的功能。如果您对字体进行唯一控制,并且您知道这些字体支持粗体或斜体样式,那么您可以确保应用程序始终以粗体或斜体显示文本。

以上是关于Java FX:粗体和斜体样式未应用于某些字体系列的主要内容,如果未能解决你的问题,请参考以下文章

如何将粗体和斜体应用于NSMutableAttributedString范围?

我们可以在 Java 中将两种字体样式组合在一起吗?

如何从字体面板(NSFontPanel)和颜色中仅检索字体样式(粗体,斜体,粗斜体)?

Java 没有合成斜体字体

iPhone/iPad的UILabel如何设置粗体和斜体?

获取字体系列的可用字体样式