JavaFX Cómo establecer la imagen de fondo de la escena

¿Cómo puedo configurar la imagen de fondo de una escena?

Uno de los enfoques puede ser así:

1) Cree un archivo CSS con el nombre “style.css” y defina un selector de id. En él:

#pane{ -fx-background-image: url("background_image.jpg"); -fx-background-repeat: stretch; -fx-background-size: 900 506; -fx-background-position: center center; -fx-effect: dropshadow(three-pass-box, black, 30, 0.5, 0, 0); } 

2) Establezca el ID del control más alto (o cualquier control) en la escena con el valor definido en CSS y cargue este archivo CSS en la escena:

  public class Test extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { StackPane root = new StackPane(); root.setId("pane"); Scene scene = new Scene(root, 300, 250); scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } } 

También puede dar una identificación al control en un archivo FXML:

     

Para obtener más información sobre JavaFX CSS Styling, consulte esta guía .

Sé que esta es una pregunta antigua

Pero en caso de que quiera hacerlo programáticamente o en la forma de Java

Para fondos de imágenes; puedes usar la clase BackgroundImage

 BackgroundImage myBI= new BackgroundImage(new Image("my url",32,32,false,true), BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, BackgroundSize.DEFAULT); //then you set to your node myContainer.setBackground(new Background(myBI)); 

Para Paint o Fill Backgrounds; puedes usar la clase BackgroundFill

 BackgroundFill myBF = new BackgroundFill(Color.BLUEVIOLET, new CornerRadii(1), new Insets(0.0,0.0,0.0,0.0));// or null for the padding //then you set to your node or container or layout myContainer.setBackground(new Background(myBF)); 

Mantiene viva tu java y tu css muerta.

Puedes cambiar el estilo directamente para la escena usando la clase .root :

 .root { -fx-background-image: url("http://sofes.miximages.com/javafx/logo3w.png"); } 

Agregue esto a CSS y cárguelo como “Uluk Biy” descrito en su respuesta.