后台类是JavaFX的一部分。背景类设置区域的背景。每个背景都由多个填充或背景图像组成,但不能为空,但可以为空。背景类是不可变的,因此您可以在许多不同的区域上自由地重用同一背景。
该类的构造函数:
- Background(BackgroundFill… f):使用指定的填充创建一个新的背景对象。
- Background(BackgroundFill[] fills, BackgroundImage[] images):使用指定的填充和背景图像创建一个新的背景对象。
- Background(BackgroundImage… i):用指定的背景图像创建一个新的背景对象。
- Background(List fills, List images):创建一个具有指定填充和背景图像列表的新背景对象。
常用方法:
方法 | 说明 |
---|---|
getFills() | 返回背景的所有填充的列表。 |
getImages() | 返回背景的所有背景图像的列表。 |
getOutsets() | 返回此背景的开始。 |
isEmpty() | 返回背景是否为空。 |
isFillPercentageBased() | 返回此背景的填充是否基于百分比。 |
以下示例程序旨在说明Background类的用法:
- 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); } }
输出:
- 将图像添加到容器背景的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
相关用法
- JavaFX 类 Tab用法及代码示例
- JavaFX 类 Pos用法及代码示例
- JavaFX 类 Font用法及代码示例
- JavaFX 类 Duration用法及代码示例
- JavaFX 类 HTMLEditor用法及代码示例
- JavaFX 类 FontPosture用法及代码示例
- JavaFX 类 Rectangle2D用法及代码示例
- JavaFX 类 PieChart用法及代码示例
- JavaFX 类 Point3D用法及代码示例
- JavaFX 类 Popup用法及代码示例
- JavaFX 类 VBox用法及代码示例
- JavaFX 类 DirectoryChooser用法及代码示例
- JavaFX 类 ColorInput用法及代码示例
- JavaFX 类 FileChooser用法及代码示例
- JavaFX 类 TabPane用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Background Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。