2015-11-22 3 views
0

Я хочу использовать .png картинку, чтобы показать как заставку через Preloader и ImageView, но изображение .png не отображается. (The .png изображение находится в том же каталоге, что и класс, указанный ниже.)JavaFx ImageView SplashScreen не работает

import java.io.File; 

import javafx.application.Preloader; 
import javafx.scene.Scene; 
import javafx.scene.effect.DropShadow; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.scene.layout.Pane; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.stage.StageStyle; 

public class Splash extends Preloader { 

    private Stage splashStage; 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     this.splashStage = primaryStage; 
     this.splashStage.setWidth(800); 
     this.splashStage.setHeight(300); 
     this.splashStage.setResizable(false); 
     this.splashStage.initStyle(StageStyle.TRANSPARENT); 
     Pane pane = new Pane(); 
     Scene scene = new Scene(pane, 800, 300); 
     ImageView splashImage = new ImageView(new Image(new File("Splash.png").toURI().toString())); 
     splashImage.setEffect(new DropShadow(4, Color.GREY)); 
     pane.getChildren().add(splashImage); 
     splashImage.setFitWidth(800); 
     splashImage.setFitHeight(800); 
     this.splashStage.setScene(scene); 
     this.splashStage.show(); 
     Thread.sleep(3000); 
    } 

    @Override 
    public void handleStateChangeNotification(StateChangeNotification stateChangeNotification) { 
     if(stateChangeNotification.getType() == StateChangeNotification.Type.BEFORE_START) { 
      splashStage.hide(); 
     } 
    } 

    public Stage getSplashScreen() { 
     return this.splashStage; 
    } 

} 

ответ

0

Попробуйте использовать StageStyle.UNDECORATED вместо StageStyle.TRANSPARENT. Кроме того, я не уверен, что вам нужно указать новый файл в новом изображении, чтобы создать экземпляр ImageView. Попробуйте использовать только имя файла изображения. Нравится, ImageView splashImage = new ImageView("Splash.png");