将粗体和斜体样式应用于所有字体系列时,粗体和斜体样式将应用于某些字体。在像阿尔及利亚这样的一些案例中,粗体斜体的风格并未适用。有没有办法处理这些特殊情况的阿尔及利亚和一些类似的字体系列,其粗体斜体样式不适用?
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();
}
}
答案 0 :(得分:1)
并非所有字体都支持多种字体粗细和姿势,而Algerian字体属于只有一种单一样式的字体。如果字体本身并不知道如何以粗体或斜体方式呈现文本,那么JavaFX就无法神奇地知道如何这样做。
如果您需要始终显示粗体或斜体文本,则必须使用支持该字体的字体。如果您正在编写或设计模块,则应尽可能避免暴露更改字体的功能。如果您对字体拥有唯一控件,并且您知道这些字体支持粗体或斜体样式,那么您可以确保应用程序始终以粗体或斜体显示文本。