当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 Font用法及代码示例


字体类是JavaFX的一部分。 Font类表示字体,用于在屏幕上呈现文本。字体的大小被描述为以点为单位指定,这是现实世界中大约1/72英寸的尺寸。字体类继承Object类。

该类的构造函数:

  1. Font(double s):创建具有指定大小的字体对象。
  2. Font(String n, double s):创建具有指定名称和大小的字体对象。

常用方法:


方法 说明
font(double s) 创建具有指定大小的字体对象。
font(String f) 用指定的姓氏创建一个字体对象。
font(String f, double s) 创建具有指定系列名称和大小的字体对象。
font(String f, FontPosture p, double s) 创建具有指定的姓,位姿和大小的字体对象。
font(String f, FontWeight weight, double s) 创建具有指定系列名称,字体粗细和大小的字体对象。
font(String f, FontWeight w, FontPosture p, double s) 创建具有指定系列名称,字体粗细,字体状态和大小的字体对象。
getDefault() 返回默认字体。
getFamilies() 获取安装在用户系统上的所有字体系列。
getFamily() 返回字体系列。
getFontNames() 获取用户系统上安装的所有字体的名称。
getFontNames(String f) 获取在用户系统上安装的指定字体系列中所有字体的名称。
loadFont(InputStream in, double s) 从指定的输入流加载字体资源。
loadFont(String url, double s) 从指定的URL加载字体资源。
getName() 完整的字体名称。
getSize() 该字体的磅值。

以下示例程序旨在说明字体类的用法:

  1. Java程序来创建字体对象并将其应用于文本:在此程序中,我们将创建一个名为font的Font并指定其系列,字体的粗细和大小。将此字体应用于文本,然后将此文本添加到名为textflow的TextFlow中。创建一个名为vbox的VBox,然后将文本流添加到vbox,然后将vbox添加到场景中,然后将场景添加到舞台上。调用show()函数以显示结果。
    // Java Program to create a font object  
    // and apply it to a text 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.layout.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.text.*; 
    import javafx.geometry.*; 
    import javafx.scene.layout.*; 
    import javafx.scene.shape.*; 
      
    public class Font_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("Font"); 
      
                // create TextFlow 
                TextFlow text_flow = new TextFlow(); 
      
                // create text 
                Text text_1 = new Text("GeeksforGeeks\n"); 
      
                // set the text color 
                text_1.setFill(Color.GREEN); 
      
                // create a font 
                Font font = Font.font("Verdana", FontWeight.EXTRA_BOLD, 25); 
      
                // set font of the text 
                text_1.setFont(font); 
      
                // set text 
                text_flow.getChildren().add(text_1); 
      
                // set line spacing 
                text_flow.setLineSpacing(20.0f); 
      
                // create VBox 
                VBox vbox = new VBox(text_flow); 
      
                // set alignment of vbox 
                vbox.setAlignment(Pos.CENTER); 
      
                // create a scene 
                Scene scene = new Scene(vbox, 400, 300); 
      
                // set the scene 
                stage.setScene(scene); 
      
                stage.show(); 
            } 
      
            catch (Exception e) { 
      
                System.out.println(e.getMessage()); 
            } 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  2. Java程序,用于创建字体对象并将其应用于文本,并允许用户从组合框中选择字体:在此程序中,我们将创建一个名为font的Font并指定其系列,字体的粗细和大小。将此字体应用于文本,然后将此文本添加到名为textflow的TextFlow中。创建一个名为vbox的VBox,然后将文本流添加到vbox,然后将vbox添加到场景中,然后将场景添加到舞台上。创建两个组合框,将字体名称添加到其中一个,将字体粗细添加到另一字体,并创建一个EventHandler来处理组合框的事件,并将字体设置为用户指定的类型。
    // Java Program to create a font object  
    // and apply it to a text and allow the  
    // user to select font from the combo box 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.layout.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.text.*; 
    import javafx.geometry.*; 
    import javafx.scene.layout.*; 
    import javafx.scene.shape.*; 
    import javafx.collections.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
       
    public class Font_2 extends Application { 
       
    // launch the application 
    public void start(Stage stage) 
    { 
      
    try { 
      
        // set title for the stage 
        stage.setTitle("Font"); 
      
        // create TextFlow 
        TextFlow text_flow = new TextFlow(); 
      
        // create text 
        Text text_1 = new Text("GeeksforGeeks\n"); 
      
        // set the text color 
        text_1.setFill(Color.GREEN); 
      
        // create a font 
        Font font = Font.font(Font.getFontNames().get(0),  
                              FontWeight.EXTRA_BOLD, 20); 
      
        // font weight names 
        String weight[] = { "BLACK", "BOLD", 
                            "EXTRA_BOLD", 
                            "EXTRA_LIGHT", 
                            "LIGHT", 
                            "MEDIUM", 
                            "NORMAL", 
                            "SEMI_BOLD", 
                            "THIN" }; 
      
        // Create a combo box 
        ComboBox combo_box = 
          new ComboBox(FXCollections.observableArrayList(weight)); 
      
        // Create a combo box 
        ComboBox combo_box1 =  
          new ComboBox(FXCollections.observableArrayList(Font.getFontNames())); 
      
        // Create action event 
        EventHandler<ActionEvent> event = 
        new EventHandler<ActionEvent>() { 
      
            public void handle(ActionEvent e) 
            { 
      
                // set font of the text 
                text_1.setFont(Font.font((String)combo_box1.getValue(), 
                     FontWeight.valueOf((String)combo_box.getValue()), 20)); 
            } 
        }; 
      
        // Create action event 
        EventHandler<ActionEvent> event1 =  
           new EventHandler<ActionEvent>() { 
      
            public void handle(ActionEvent e) 
            { 
      
                // set font of the text 
                text_1.setFont(Font.font((String)combo_box1.getValue(), 
                      FontWeight.valueOf((String)combo_box.getValue()), 20)); 
            } 
        }; 
      
        // Set on action 
        combo_box.setOnAction(event); 
        combo_box1.setOnAction(event1); 
      
        // set font of the text 
        text_1.setFont(font); 
      
        // set text 
        text_flow.getChildren().add(text_1); 
      
        // set line spacing 
        text_flow.setLineSpacing(20.0f); 
      
        // create a HBox 
        HBox hbox = new HBox(combo_box, combo_box1); 
      
        // create VBox 
        VBox vbox = new VBox(hbox, text_flow); 
      
        // set spacing 
        vbox.setSpacing(30.0); 
      
        // set alignment of vbox 
        vbox.setAlignment(Pos.CENTER); 
      
        // create a scene 
        Scene scene = new Scene(vbox, 400, 300); 
      
        // set the scene 
        stage.setScene(scene); 
      
        stage.show(); 
    } 
      
    catch (Exception e) { 
      
        System.out.println(e.getMessage()); 
    } 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
      
        // launch the application 
        launch(args); 
    } 
    }

    输出:

注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。

参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/text/Font.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Font Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。