2016-11-19 7 views
0

Я иду через этот учебник: https://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htmJavaFX - В чем смысл аргумента Stage?

И это говорит, что это:

«Приложение JavaFX определяет контейнер пользовательского интерфейса с помощью сцены и сцены Класса Stage JavaFX является верхним уровнем. JavaFX. Класс JavaFX Scene - это контейнер для всего содержимого ... »

« В JavaFX содержимое сцены представлено в виде иерархического графика сцены узлов. В этом примере корневой узел представляет собой StackPane объект ... "

Я не понимаю, что t - точка объекта 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 используется для обработки и Оформление печатных событий ЭСТ ..

Реализация функциональности в раздельных классах является дизайнерское решение, которое, скорее всего, также повлиял тот факт, что окно обеспечивается ОС и если сцены полностью предоставленный инструментарием внутри предоставленного окна.

Однако Scene может использоваться в контейнерах, используемых для встраивания JavaFX в другие библиотеки графического интерфейса (FXCanvas, JFXPanel).