アプリケーションの前にJavaFX Preloaderスプラッシュsccreenを表示しようとしています。私はEclipse IDEを使用しています。「実行」をクリックすると、スプラッシュ画面が正しく表示される時間の半分と、残りの半分が画像が表示される場所ではなく灰色または黒色の画面になります。JavaFX Preloaderが時折灰色/黒色に表示され、正しくロードされる時間があるのはなぜですか?
問題が正しく表示されない場合があります。
SplashController:
public class SplashController extends Preloader {
private static final double WIDTH = 676;
private static final double HEIGHT = 227;
private Stage preloaderStage;
private Label progressText;
private Pane splashScreen;
public SplashController() {}
@Override
public void init() throws Exception {
ImageView splash =
new ImageView(new Image(Demo.class.getResource("pic.png").toString()));
progressText =
new Label("VERSION: " + getVersion() + " ~~~ Loading plugins, please wait...");
splashScreen = new VBox();
splashScreen.getChildren().addAll(splash, progressText);
progressText.setAlignment(Pos.CENTER);
}
@Override
public void start(Stage primaryStage) throws Exception {
this.preloaderStage = primaryStage;
Scene splashScene = new Scene(splashScreen);
this.preloaderStage.initStyle(StageStyle.UNDECORATED);
final Rectangle2D bounds = Screen.getPrimary().getBounds();
this.preloaderStage.setScene(splashScene);
this.preloaderStage.setX(bounds.getMinX() + bounds.getWidth()/2 - WIDTH/2);
this.preloaderStage.setY(bounds.getMinY() + bounds.getHeight()/2 - HEIGHT/2);
this.preloaderStage.show();
}
}
そして、私のメインクラスでデモは、私は単に持っている:
public class Demo extends Application {
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new
FXMLLoader(Demo.class.getResource("FXMLDocument.fxml"));
GridPane root = loader.load();
--------other app code here---------
}
public static void main(String[] args) {
LauncherImpl.launchApplication(Demo.class, SplashController.class, args);
}
}
ありがとうございました!はい、問題はJavaFXスレッドで長い実行プロセスがありました:) – chip
幸運にも推測:-)、私はちょうど答えにコメントをしました。 – jewelsea