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

时间:2018-03-01 03:51:03

标签: javafx

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

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();
    }

}

1 个答案:

答案 0 :(得分:1)

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

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