español - javafx netbeans
JavaFX Cómo establecer la imagen de fondo de la escena (3)
¿Cómo puedo configurar la imagen de fondo de una escena?
Puedes cambiar el estilo directamente para la escena usando la clase .root
:
.root {
-fx-background-image: url("https://www.google.com/images/srpr/logo3w.png");
}
Agregue esto a CSS y cárguelo como "Uluk Biy" descrito en su respuesta.
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:
<StackPane id="pane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="demo.Sample">
<children>
</children>
</StackPane>
Para obtener más información sobre JavaFX CSS Styling, consulte esta guide .
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.