2016-11-19 9 views
0

私はこのチュートリアルをつもりです:https://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htmJavaFX - Stage引数のポイントは何ですか?

をそして、それはこのことを言う:

「JavaFXアプリケーションがステージやシーンによって、ユーザインターフェイスのコンテナを定義するのJavaFX Stageクラスはトップレベルです。 JavaFXコンテナー。JavaFX Sceneクラスは、すべてのコンテンツのコンテナです。 "

"シーンのコンテンツは、ノードの階層的なシーングラフとして表されます。この例では、ルートノードはStackPaneですオブジェクト... "

わかりませんStageオブジェクトのポイントはです。 StackPaneがルートノードの場合(ツリー構造全体を理解しています)、シーンがすべてのコンテンツのコンテナである場合、ステージは何をしていますか?なぜシーンによって何が行われないのですか?ここで

はコードです:

public class HelloWorld extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     // TODO Auto-generated method stub 
     Button btn = new Button("Say 'Hello World'"); 
     btn.setOnAction((ActionEvent event) -> System.out.println("Hello World!")); 

     StackPane root = new StackPane(); 
     root.getChildren().add(btn); 

     Scene scene = new Scene(root, 300, 250); 

     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 

} 
+0

複数のシーンがあり、それらのシーンを切り替える必要がある場合はどうなりますか?これは次のようなものです:http://www.javafxtutorials.com/tutorials/switching-to-different-screens-in-javafx-and-fxml/ – Omid

+0

@omidありがとうございます、それは実際にすべてをクリアします! –

答えて

1

それは基本的に関心の分離です。

Stageは、見た目、タイトル、位置などを変更するオブジェクトです。 windowの、Sceneは別々のクラスで機能を実装する

もウィンドウがOSやシーン場合によって提供されているという事実によって影響を受けた可能性が最も高い設計上の決定..ですレイアウトすると電気ショック療法のイベントを処理するために使用されます提供されたウィンドウ内のツールキットによって完全にレンダリングされます。

ただし、Sceneは、他のGUIライブラリにJavaFXを埋め込むために使用するコンテナでも使用できます(FXCanvasJFXPanel)。

関連する問題