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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。