2016-12-16 23 views
1

私はSceneBorderPaneを持っています。 &私はそのペインに背景画像を持っています。そのイメージの 私のコード:左、そのpane.Iで右部分は、VBoxの者の位置の変化を生じさせることなく、明らかにそのBorderPane(の背景画像を変更したいとjavafx- BorderPaneの背景イメージを置き換える

BorderPane B_pane = new BorderPane(); 
Image image = new Image("/Client/social3.png",width,height,false,true,true); 
ImageView imageView = new ImageView(image); 
B_pane.getChildren().add(imageView); 

その後、私はいくつかVBoxを追加しました、要素)特にButtonをクリックしてください。どうすればいいですか?

答えて

3

本当に代わりに子としてImageViewを追加することで、背景画像を使用します。

@Override 
public void start(Stage primaryStage) { 
    BorderPane borderPane = new BorderPane(); 
    Image image1 = new Image("https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/se/se-logo.png?v=dd7153fcc7fa"); 
    Image image2 = new Image("https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a"); 

    BackgroundSize bSize = new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, true, false); 

    Background background2 = new Background(new BackgroundImage(image2, 
      BackgroundRepeat.NO_REPEAT, 
      BackgroundRepeat.NO_REPEAT, 
      BackgroundPosition.CENTER, 
      bSize)); 

    borderPane.setBackground(new Background(new BackgroundImage(image1, 
      BackgroundRepeat.NO_REPEAT, 
      BackgroundRepeat.NO_REPEAT, 
      BackgroundPosition.CENTER, 
      bSize))); 

    Button btn = new Button("Change Background"); 
    btn.setOnAction((ActionEvent event) -> { 
     borderPane.setBackground(background2); 
    }); 

    borderPane.setCenter(btn); 

    Scene scene = new Scene(borderPane, 600, 400); 

    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 
関連する問題