2017-01-12 10 views
0

Javafx FXMLアプリケーションを最大化して、私のステージでsetMaximized(true)というメソッドを使用したい。JavaFX FXMLで最大化されたアプリケーションウィンドウを起動するFXMLが正しく動作しない

プログラムは最大で問題なく表示されますが、問題はウィンドウが表示される直前にアプリケーションの起動時に0.5秒間点滅する小さな黒い領域があることです。私はそれは、ステージに合わせてスケールアップそのprefWidth & prefHeightで開こうとしているような問題がシーンであることを考え出し enter image description here

:ここ

は、私が説明するものの記録(GIF)です。 これを修正し、通常のプログラムのようにプログラムを開始するにはどうすればよいですか?ここ

が私のスタートだ()メソッド:

@Override 
public void start(Stage primaryStage) throws Exception{ 
    Parent root = FXMLLoader.load(getClass().getResource("editor.fxml")); 
    primaryStage.setTitle("Simple Text Editor"); 
    primaryStage.setScene((new Scene(root))); 
    primaryStage.setMaximized(true); 
    primaryStage.show(); 
} 
+1

?グリッチがまだ表示されている場合は、新しいスレッドで「primaryStage.show()」を呼び出してみてください(例:Platform.runLater()) –

+0

はい、Jarを実行すると同じことが起こります。また、 "Platform.runLater()"の "primaryStage.show()"を呼び出しても何も変更されませんでした。 –

+0

注:白と黒の四角形の代わりに 'primaryStage.setResizable(false);'を追加すると、突然最大化される小さなウィンドウが表示されます。 – Linuslabo

答えて

0

私が見つけた唯一の回避策はこれです:あなたがリリース(.EXE /の.jar)を構築し、それを実行するとどうなりますか

@Override 
public void start(Stage primaryStage) throws Exception{ 
    Parent root = FXMLLoader.load(getClass().getResource("editor.fxml")); 
    primaryStage.setTitle("Simple Text Editor"); 
    primaryStage.setScene(new Scene(root)); 
    primaryStage.setMinWidth(450); 
    primaryStage.setMinHeight(300); 

    Screen screen = Screen.getPrimary(); 
    Rectangle2D bounds = screen.getVisualBounds(); 
    primaryStage.setWidth(bounds.getWidth()); 
    primaryStage.setHeight(bounds.getHeight()); 

    primaryStage.setMaximized(true); 
    primaryStage.show(); 
} 
関連する問題