2016-12-17 8 views
1

ステージ上のシーンを次のコードで変更すると、ステージのサイズが変わります。しかし、ウィンドウを最大化/最小化する右上のボタンは、明らかにそうではなくてもステージが最大化されていると言います。シーンチェンジ後にステージを最大化する

シーンチェンジが発生した場合、どのようにステージを最大限に保つことができますか?このよう

import javafx.application.Application; 
import javafx.concurrent.Task; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.ScrollPane; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.scene.layout.StackPane; 
import javafx.scene.layout.VBox; 
import javafx.scene.text.Font; 
import javafx.stage.Stage; 

public class Program2 extends Application { 
    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
     try { 
      StackPane p = new StackPane(); 
      primaryStage.setTitle("Chart Application"); 
      Label loader = new Label("Loading..."); 
      loader.setGraphic(new ImageView(new Image("https://media.giphy.com/media/FmcNeI0PnsAKs/giphy.gif"))); 
      loader.setFont(new Font(35)); 
      p.setStyle("-fx-background: #FFFFFF;"); 
      p.getChildren().add(loader); 
      StackPane.setAlignment(loader, Pos.CENTER); 

      primaryStage.setScene(new Scene(p)); 
      primaryStage.setMaximized(true); 

      Task<VBox> task = new Task<VBox>() { 
       @Override 
       public VBox call() { 
        VBox result = new VBox(); 
        for(int i = 0; i < 50000; i++) { //Here simply for small delay 
         result.getChildren().add(new Label(Integer.toString(i))); 
        } 
        return result ; 
       } 
      }; 

      task.setOnSucceeded(e -> { 
       VBox result = task.getValue(); 

       ScrollPane scrollPane = new ScrollPane(); 
       scrollPane.setContent(result); 
       scrollPane.setStyle("-fx-background: #FFFFFF;"); 

       primaryStage.setScene(new Scene(scrollPane)); 
      }); 

      new Thread(task).start(); 

      primaryStage.show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

は、私は日食のためのE(FX)ザ・クリプスプラグインでJDK 8 U112およびJavaFXの8でWindows 10を使用していますシステム固有のIイメージを操作

+1

シーンを変更する代わりに、既存のシーンのルートを変更できますか? –

+0

@ James_D Yep。それは素晴らしい仕事でした。ありがとうございました – Dan

答えて

2

代わりのシーン、使用を交換しています同じシーンを置き換えてルートを置き換えます。

primaryStage.getScene().setRoot(scrollPane); 
関連する問題