概述:
JavaFX的应用程序的顶级容器是stage(舞台),创建javafx的应用程序首先应该是集成Application类,通过覆盖start方法来显示在界面中显示的内容,覆盖start方法要做的事
1、创建根节点root,根节点的对象是Parent及Parent派生类的实例
2、以root为根结点参数创建一个Scene(场景)对象scene
3、设置primaryStage的场景为scene
4、调用primaryStage的show方法
1、Application类
Application的子类是Preloader
JavaFX应用程序的入口点是Application类。无论何时启动应用程序,JavaFX运行时都按顺序执行以下操作:
构造指定的Application类的实例
调用init()方法
调用start(javafx.stage.Stage)方法
等待应用程序完成,发生以下任一情况时:
该应用程序调用Platform.exit()
最后一个窗口已关闭,Platform上的implicitExit属性为true
调用stop()方法
请注意,start方法是抽象的,必须被覆盖。 init和stop方法可以不具体的实现。
调用Platform.exit()是明确终止JavaFX应用程序的首选方式。直接调用System.exit(int)是一个可以接受的替代方法,但不允许Application stop()结束JavaFx程序。
在FX工具包终止或ShutdownHook之后,即在stop()方法返回或调用System.exit(int)之后,JavaFX应用程序不应尝试使用JavaFX。
通过从init()方法调用getParameters()方法,或调用init方法后的任何时间,可以使用应用程序参数。
2、Scene类
JavaFX Scene类是场景图中所有内容的容器。填充属性指定场景的背景。
应用程序必须通过设置根属性来指定场景图的根节点。如果使用组作为根,则场景图的内容将被场景的宽度和高度剪切,并且改变为场景的大小(如果用户调整舞台大小)将不会改变场景图的布局。
如果一个可调整大小的节点(将“区域”或“控件”设置为根,则根的大小将跟踪场景的大小,从而根据需要将内容中继出来。
场景的大小可以在应用程序构造期间初始化。如果没有指定大小,场景将根据其内容的首选大小自动计算其初始大小。如果仅指定了一个维度,则使用指定的维度来计算另一个维度,该范围涉及根的内容偏差。
应用程序可以在创建场景时请求深度缓冲区支持或场景抗锯齿支持。只有2D形状和没有任何3D变换的场景不需要深度缓冲区和场景抗锯齿支持。包含3D形状或具有3D变换的2D形状的场景可以使用深度缓冲区支持来进行适当的深度排序渲染;为了避免深度战斗(也称为Z战斗),禁用没有3D转换的2D形状的深度测试。有关详细信息,请参阅depthTest。具有3D形状的场景可以实现场景抗锯齿以改善其渲染质量。
depthBuffer和antiAliasing标志是条件特征。使用各自的默认值:false和SceneAntialiasing.DISABLED。有关详细信息,请参阅ConditionalFeature.SCENE3D。
默认头灯将被添加到包含一个或多个Shape3D节点但没有光节点的场景中。该光源是位于相机位置的Color.WHITE PointLight。
必须在JavaFX应用程序线程上构建和修改场景对象。
3、Scene的根节点Parent
它的派生类有以下:
Group,Region(子类:Axis(子类:CategoryAxis, ValueAxis), Chart(子类:PieChart, XYChart), Control(子类:Accordion, ButtonBar, ChoiceBox, ComboBoxBase, HTMLEditor, Labeled, ListView, MenuBar, Pagination, ProgressIndicator, ScrollBar, ScrollPane, Separator, Slider, Spinner, SplitPane, TableView, TabPane, TextInputControl, ToolBar, TreeTableView, TreeView), Pane(子类:AnchorPane, BorderPane, DialogPane, FlowPane, GridPane, HBox, PopupControl.CSSBridge, StackPane, TextFlow, TilePane, VBox)),WebView(子类:)
公共抽象类Parent
扩展Node在场景图中具有子节点的所有节点的基类。
该类处理所有分层场景图操作,包括添加/删除子节点,标记用于布局和渲染的分支,采摘,边界计算以及对每个脉冲执行布局传递。