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


JavaFX 類 Background用法及代碼示例


後台類是JavaFX的一部分。背景類設置區域的背景。每個背景都由多個填充或背景圖像組成,但不能為空,但可以為空。背景類是不可變的,因此您可以在許多不同的區域上自由地重用同一背景。

該類的構造函數:

  1. Background(BackgroundFill… f):使用指定的填充創建一個新的背景對象。
  2. Background(BackgroundFill[] fills, BackgroundImage[] images):使用指定的填充和背景圖像創建一個新的背景對象。
  3. Background(BackgroundImage… i):用指定的背景圖像創建一個新的背景對象。
  4. Background(List fills, List images):創建一個具有指定填充和背景圖像列表的新背景對象。

常用方法:


方法 說明
getFills() 返回背景的所有填充的列表。
getImages() 返回背景的所有背景圖像的列表。
getOutsets() 返回此背景的開始。
isEmpty() 返回背景是否為空。
isFillPercentageBased() 返回此背景的填充是否基於百分比。

以下示例程序旨在說明Background類的用法:

  1. Java程序為容器的背景設置填充:在此程序中,我們將使用指定的BackgroundFill創建一個名為background的Background並將其添加到背景中。我們將創建一個名為hbox的HBox,一個名為label的Label,一個名為textfield的TextField和一個名為button的Button。現在,將標簽,文本字段和按鈕添加到HBox。我們將使用setBackground()函數設置hbox的背景,現在將HBox的對齊方式設置為Pos.CENTER,並使用setSpacing()方法在節點之間添加一些間距。我們將創建一個名為Scene的Scene並將HBox添加到該場景。使用setScene()函數將場景設置為舞台。我們將調用show()函數以顯示結果。
    // Java program to set a fill for the background  
    // of a container 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.canvas.*; 
    import javafx.scene.web.*; 
    import javafx.scene.layout.*; 
    import javafx.scene.image.*; 
    import java.io.*; 
    import javafx.geometry.*; 
    import javafx.scene.Group; 
    import javafx.scene.paint.*; 
      
    public class Background_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("creating Background"); 
      
                // create a label 
                Label label = new Label("Name:"); 
      
                // create a text field 
                TextField textfield = new TextField(); 
      
                // set preferred column count 
                textfield.setPrefColumnCount(10); 
      
                // create a button 
                Button button = new Button("OK"); 
      
                // add the label, text field and button 
                HBox hbox = new HBox(label, textfield, button); 
      
                // set spacing 
                hbox.setSpacing(10); 
      
                // set alignment for the HBox 
                hbox.setAlignment(Pos.CENTER); 
      
                // create a scene 
                Scene scene = new Scene(hbox, 280, 280); 
      
                // create a background fill 
                BackgroundFill background_fill = new BackgroundFill(Color.PINK,  
                                              CornerRadii.EMPTY, Insets.EMPTY); 
      
                // create Background 
                Background background = new Background(background_fill); 
      
                // set background 
                hbox.setBackground(background); 
      
                // 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程序:在此程序中,我們將使用指定的BackgroundImage創建一個名為background的Background並將此圖像添加到容器的背景中。使用FileInputStream導入圖像,然後將文件轉換為Image對象。使用此Image對象創建BackgroundImage。我們將創建一個名為hbox的HBox,一個名為label的Label,一個名為textfield的TextField和一個名為button的Button。現在,將標簽,文本字段和按鈕添加到HBox。使用setBackground()函數設置hbox的背景。將HBox的對齊方式設置為Pos.CENTER,並使用setSpacing()方法在節點之間添加一些間距。我們將創建一個名為Scene的Scene並將HBox添加到該場景。使用setScene()函數將場景設置為舞台。最後,調用show()方法以顯示結果。
    // Java program to add an image to  
    // the background of a container 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.canvas.*; 
    import javafx.scene.web.*; 
    import javafx.scene.layout.*; 
    import javafx.scene.image.*; 
    import java.io.*; 
    import javafx.geometry.*; 
    import javafx.scene.Group; 
      
    public class Background_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("creating Background"); 
      
                // create a label 
                Label label = new Label("Name:"); 
      
                // create a text field 
                TextField textfield = new TextField(); 
      
                // set preferred column count 
                textfield.setPrefColumnCount(10); 
      
                // create a button 
                Button button = new Button("OK"); 
      
                // add the label, text field and button 
                HBox hbox = new HBox(label, textfield, button); 
      
                // set spacing 
                hbox.setSpacing(10); 
      
                // set alignment for the HBox 
                hbox.setAlignment(Pos.CENTER); 
      
                // create a scene 
                Scene scene = new Scene(hbox, 280, 280); 
      
                // create a input stream 
                FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
                // create a image 
                Image image = new Image(input); 
      
                // create a background image 
                BackgroundImage backgroundimage = new BackgroundImage(image,  
                                                 BackgroundRepeat.NO_REPEAT,  
                                                 BackgroundRepeat.NO_REPEAT,  
                                                 BackgroundPosition.DEFAULT,  
                                                    BackgroundSize.DEFAULT); 
      
                // create Background 
                Background background = new Background(backgroundimage); 
      
                // set background 
                hbox.setBackground(background); 
      
                // 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/layout/Background.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | Background Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。