當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。