Comment définir une image sur un arrière-plan de scène dans JavaFX?


Le titre dit tout, je suppose.

Comment définir une image .jpg (ou tout autre format d'image pris en charge) sur un arrière-plan de scène?

, je un peu parvenir, à l'aide d'un HBox, un Image et ImageView, comme ceci:

String url = ...
HBox box= new HBox();
Image x = new Image(url);
ImageView iv = new ImageView(x);
box.getChildren().add(iv);
box.setVisible(true);

Ensuite, j'ajoute cette boîte à la scène d'abord, et tout le reste après.

Je ne me plains pas de ce morceau de code - cela fonctionne à mes fins - mais existe-t-il un bon moyen de définir un arrière-plan?

Author: Marebre8, 2016-06-03

2 answers

Un ImagePattern peut être utilisé comme fill de la Scene:

ImagePattern pattern = new ImagePattern(myImage);
scene.setFill(pattern);
 5
Author: fabian, 2016-06-03 17:05:40

Appelez Simplement setBackground sur le nœud racine de la scène. Par exemple:

Pane root = ... ; // probably some pane subclass...
String url = ... ;
Image img = new Image(url);
BackgroundImage bgImg = new BackgroundImage(img, 
    BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT,
    BackgroundPosition.DEFAULT, 
    new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, true, false));

// put stuff in root as normal....

Scene scene = new Scene(root);

Voir le Javadocs pour les paramètres du constructeur BackgroundImage, etc.

 4
Author: James_D, 2016-06-03 16:42:59