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范围?