2014-04-07 23 views
2

我想在出現新窗口時帶來淡入淡出效果。沒有關閉窗戶也不應該是可能的。我的代碼打開新窗口時按下按鈕在給定如下:如何在java fx中出現一個新窗口時給出淡入淡出的背景?

Button b4 = new Button("ABOUT"); 
    b4.setFont(Font.font("Calibri", FontWeight.BOLD, 17)); 
    b4.setPrefSize(100, 30); 
    b4.setStyle(" -fx-base: #ffffff;"); 
    b4.setTextFill(Color.BLACK); 

    b4.setOnAction(new EventHandler<ActionEvent>() { 
     @Override 
     public void handle(ActionEvent e) { 
      Stage usrpagestage = new Stage(); 
      usrpagestage.setMaxHeight(160); 
      usrpagestage.setMaxWidth(210); 
      usrpagestage.setResizable(false); 
      usrpagestage.initStyle(StageStyle.UTILITY); 
      usrpagestage.setScene(new Scene(new About())); 
      usrpagestage.show(); 
     } 
    }); 

我的2窗口的當前外觀如下。我只想讓這個小窗口可見,其餘的應該顯得褪色。我該怎麼做 ?當您關閉階段將其設置爲默認

enter image description here

enter image description here

+0

可怕的編碼... – Andreas

回答

4

試試這個..

 b4.setOnAction(new EventHandler<ActionEvent>() { 
     @Override 
     public void handle(ActionEvent e) { 

     //Before open a add effect here 


     anchpane.setEffect(new BoxBlur(5, 10, 10)); // anchpane is anchor pane of main stage. change values of efect according your need. you can use any kind of pane of scene. 

     Stage usrpagestage = new Stage(); 
     usrpagestage.setMaxHeight(160); 
     usrpagestage.setMaxWidth(210); 
     usrpagestage.setResizable(false); 
     usrpagestage.initStyle(StageStyle.UTILITY); 
     usrpagestage.setScene(new Scene(new About())); 
     usrpagestage.show(); 
    } 
}); 

樣子。

usrpagestage.setOnCloseRequest(new EventHandler<WindowEvent>() { 

     @Override 
     public void handle(WindowEvent t) { 
     anchpane.setEffect(new BoxBlur(0, 0, 0)); 

     } 
    }); 
+0

隱藏窗口爲空時,我設置的效果:anchpane.setEffect(NULL); –