JavaFX | Clase de fondo

La clase de fondo es una parte de JavaFX. La clase de fondo establece el fondo de una región. Cada fondo se compone de varios rellenos o imágenes de fondo pero no puede ser nulo pero puede estar vacío. La clase de fondo es inmutable, por lo que puede reutilizar libremente el mismo fondo en muchas regiones diferentes.

Constructores de la clase:

  1. Background(BackgroundFill… f) : Crea un nuevo objeto de fondo con rellenos especificados.
  2. Background(BackgroundFill[] rellenos, BackgroundImage[] imágenes) : Crea un nuevo objeto de fondo con rellenos e imágenes de fondo especificados.
  3. Background(BackgroundImage… i) : Crea un nuevo objeto de fondo con imágenes de fondo especificadas.
  4. Fondo (rellenos de lista, imágenes de lista) : crea un nuevo objeto de fondo con una lista de rellenos e imágenes de fondo especificados.

Métodos comúnmente utilizados:

Método Explicación
obtenerRellenos() Devuelve la lista de todos los rellenos de un fondo.
getImages() Devuelve la lista de todas las imágenes de fondo de un fondo.
getOutsets() Devuelve los inicios de este Fondo.
esta vacio() Devuelve si el fondo está vacío.
está basado en porcentaje de relleno() Devuelve si el relleno de este Fondo se basa en porcentajes.

Los siguientes programas ilustran el uso de la clase de fondo:

  1. Programa Java para establecer un relleno para el fondo de un contenedor: En este programa crearemos un Fondo llamado background con BackgroundFill especificado y lo agregaremos al fondo. Crearemos un HBox llamado hbox , un Label llamado label , un TextField llamado textfield y un Button llamado button . Ahora agregue la etiqueta, el campo de texto y el botón al HBox. Estableceremos el fondo de hbox usando la función setBackground(). Ahora establezca la alineación de HBox en Pos.CENTER y también agregue algo de espacio entre los Nodes usando el método setSpacing() . Crearemos una Escena llamada escenay agregue el HBox a la escena. La escena se establecerá en el escenario usando la función setScene() . Llamaremos a la función show() para mostrar los resultados.

    // 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);
        }
    }

    Producción:

  2. Programa Java para agregar una imagen al fondo de un contenedor: en este programa crearemos un fondo llamado background con una imagen de fondo especificada y agregaremos esta imagen al fondo del contenedor. Importe la imagen usando FileInputStream y luego convierta el archivo en un objeto de imagen. Use este objeto de imagen para crear una imagen de fondo. Crearemos un HBox llamado hbox , un Label llamado label , un TextField llamado textfield y un Button llamado button . Ahora agregue la etiqueta, el campo de texto y el botón al HBox. Establece el fondo del hbox usando la función setBackground() . Establezca la alineación de HBox en Pos.CENTERy también agregue algo de espacio entre los Nodes usando el método setSpacing() . Crearemos una Escena llamada escena y agregaremos el HBox a la escena. La escena se establecerá en el escenario usando la función setScene() . Finalmente llame al método show() para mostrar el resultado.

    // 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);
        }
    }

    Producción:

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea. Utilice un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Background.html

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *