概述:
JavaFX的應(yīng)用程序的頂級容器是stage(舞臺),創(chuàng)建javafx的應(yīng)用程序首先應(yīng)該是集成Application類阿弃,通過覆蓋start方法來顯示在界面中顯示的內(nèi)容留量,覆蓋start方法要做的事
1扔茅、創(chuàng)建根節(jié)點(diǎn)root,根節(jié)點(diǎn)的對象是Parent及Parent派生類的實(shí)例
2裕寨、以root為根結(jié)點(diǎn)參數(shù)創(chuàng)建一個(gè)Scene(場景)對象scene
3、設(shè)置primaryStage的場景為scene
4糠悯、調(diào)用primaryStage的show方法
1帮坚、Application類
Application的子類是Preloader
JavaFX應(yīng)用程序的入口點(diǎn)是Application類。無論何時(shí)啟動應(yīng)用程序互艾,JavaFX運(yùn)行時(shí)都按順序執(zhí)行以下操作:
構(gòu)造指定的Application類的實(shí)例
調(diào)用init()方法
調(diào)用start(javafx.stage.Stage)方法
等待應(yīng)用程序完成试和,發(fā)生以下任一情況時(shí):
該應(yīng)用程序調(diào)用Platform.exit()
最后一個(gè)窗口已關(guān)閉,Platform上的implicitExit屬性為true
調(diào)用stop()方法
請注意纫普,start方法是抽象的阅悍,必須被覆蓋。 init和stop方法可以不具體的實(shí)現(xiàn)昨稼。
調(diào)用Platform.exit()是明確終止JavaFX應(yīng)用程序的首選方式节视。直接調(diào)用System.exit(int)是一個(gè)可以接受的替代方法,但不允許Application stop()結(jié)束JavaFx程序假栓。
在FX工具包終止或ShutdownHook之后寻行,即在stop()方法返回或調(diào)用System.exit(int)之后,JavaFX應(yīng)用程序不應(yīng)嘗試使用JavaFX匾荆。
通過從init()方法調(diào)用getParameters()方法拌蜘,或調(diào)用init方法后的任何時(shí)間,可以使用應(yīng)用程序參數(shù)牙丽。
2简卧、Scene類
JavaFX Scene類是場景圖中所有內(nèi)容的容器。填充屬性指定場景的背景烤芦。
應(yīng)用程序必須通過設(shè)置根屬性來指定場景圖的根節(jié)點(diǎn)举娩。如果使用組作為根,則場景圖的內(nèi)容將被場景的寬度和高度剪切,并且改變?yōu)閳鼍暗拇笮铜涉。ㄈ绻脩粽{(diào)整舞臺大兄遣!)將不會改變場景圖的布局。
如果一個(gè)可調(diào)整大小的節(jié)點(diǎn)(將“區(qū)域”或“控件”設(shè)置為根骄噪,則根的大小將跟蹤場景的大小尚困,從而根據(jù)需要將內(nèi)容中繼出來。
場景的大小可以在應(yīng)用程序構(gòu)造期間初始化链蕊。如果沒有指定大小事甜,場景將根據(jù)其內(nèi)容的首選大小自動計(jì)算其初始大小。如果僅指定了一個(gè)維度滔韵,則使用指定的維度來計(jì)算另一個(gè)維度逻谦,該范圍涉及根的內(nèi)容偏差。
應(yīng)用程序可以在創(chuàng)建場景時(shí)請求深度緩沖區(qū)支持或場景抗鋸齒支持陪蜻。只有2D形狀和沒有任何3D變換的場景不需要深度緩沖區(qū)和場景抗鋸齒支持邦马。包含3D形狀或具有3D變換的2D形狀的場景可以使用深度緩沖區(qū)支持來進(jìn)行適當(dāng)?shù)纳疃扰判蜾秩?為了避免深度戰(zhàn)斗(也稱為Z戰(zhàn)斗),禁用沒有3D轉(zhuǎn)換的2D形狀的深度測試宴卖。有關(guān)詳細(xì)信息滋将,請參閱depthTest。具有3D形狀的場景可以實(shí)現(xiàn)場景抗鋸齒以改善其渲染質(zhì)量症昏。
depthBuffer和antiAliasing標(biāo)志是條件特征随闽。使用各自的默認(rèn)值:false和SceneAntialiasing.DISABLED。有關(guān)詳細(xì)信息肝谭,請參閱ConditionalFeature.SCENE3D掘宪。
默認(rèn)頭燈將被添加到包含一個(gè)或多個(gè)Shape3D節(jié)點(diǎn)但沒有光節(jié)點(diǎn)的場景中。該光源是位于相機(jī)位置的Color.WHITE PointLight攘烛。
必須在JavaFX應(yīng)用程序線程上構(gòu)建和修改場景對象魏滚。
3、Scene的根節(jié)點(diǎn)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
擴(kuò)展Node在場景圖中具有子節(jié)點(diǎn)的所有節(jié)點(diǎn)的基類。
該類處理所有分層場景圖操作芋齿,包括添加/刪除子節(jié)點(diǎn)腥寇,標(biāo)記用于布局和渲染的分支,采摘沟突,邊界計(jì)算以及對每個(gè)脈沖執(zhí)行布局傳遞。