JAVA---FX
目錄
JavaFX 基礎(chǔ)介紹:
JavaFX的目的:
功能特性:
?JavaFX的架構(gòu)設(shè)計(jì)構(gòu)成和關(guān)聯(lián)的組件
整體結(jié)構(gòu):
?FlowPane流式布局:
BorderPane邊框布局:
JavaFX 基礎(chǔ)介紹:
JavaFX是用于構(gòu)建富互聯(lián)網(wǎng)應(yīng)用程序的Java庫(kù)。使用此庫(kù)編寫(xiě)的應(yīng)用程序可以跨多個(gè)平臺(tái)一致運(yùn)行。使用JavaFX開(kāi)發(fā)的應(yīng)用程序可以在各種設(shè)備上運(yùn)行,如臺(tái)式計(jì)算機(jī),手機(jī),電視,平板電腦等。要使用java編程語(yǔ)言開(kāi)發(fā)GUI應(yīng)用程序,程序員依賴(lài)于諸如高級(jí)窗口工具包(AWT)和Swings之類(lèi)的庫(kù)。在JavaFX出現(xiàn)之后,這些java程序開(kāi)發(fā)就可以有效地利用豐富的類(lèi)庫(kù)來(lái)開(kāi)發(fā)GUI應(yīng)用程序。
JavaFX的目的:
JavaFX的FX是什么的縮寫(xiě)的問(wèn)題,雖然這不重要,但是從其用途和目的來(lái)看:
Fat-Client Extension:傳統(tǒng)方式下桌面應(yīng)用,在Java中則是Swing的天下
Flash & Flex:JavaFX主要用于創(chuàng)建RIA應(yīng)用,而這正是Flash的長(zhǎng)項(xiàng)。
能不能取代Flash這里不談,作為技術(shù)的更新,替換Swing則還可能是一個(gè)可控制的方向。
功能特性:
FXML?:JavaFX應(yīng)用中以XML為基礎(chǔ)的用戶(hù)接口標(biāo)記語(yǔ)言,在JavaFA應(yīng)用中體現(xiàn)為.fxml文件
Scene Builder?:可視的布局設(shè)計(jì)工具,用于給用戶(hù)提供拖拽方式的界面設(shè)計(jì)方式。
Swing Compatibility?: 在JavaFX應(yīng)用中,可以嵌入Swing內(nèi)容
CSS Styling: 可以使用CSS對(duì)應(yīng)用進(jìn)行渲染
豐富的API’s:提供豐富的API包括2D和3D圖形效果等。
Application是JavaFX程序的入口,任何JavaFX程序程序都要繼承該類(lèi)并且重寫(xiě)start方法通過(guò)main方法執(zhí)行Application的launch()方法。
public class Main extends Application {public void start(Stage primaryStage) {}public static void main(String[] args) {launch(args);} }?JavaFX的架構(gòu)設(shè)計(jì)構(gòu)成和關(guān)聯(lián)的組件
如下圖所示,簡(jiǎn)單說(shuō)明如下:
JavaFX Public APIS and Scene Graph:進(jìn)行整體接口功能與Scene特性的提供
Quantum toolkit:JavaFX高性能圖形化引擎
Glass Windowing toolkit:小型而搞笑的視窗化系統(tǒng)
Media engine:媒體引擎
Web engine:Web引擎
Java2D等:Java2D與OpenGL相關(guān)的圖形化功能支持
JavaFX應(yīng)用利用JDK的API庫(kù)同時(shí)作為客戶(hù)端桌面應(yīng)用,需要JVM的運(yùn)行支持。
整體結(jié)構(gòu):
?Stage是一個(gè)主容器,或者說(shuō)是舞臺(tái),它就是我們通常所認(rèn)為的窗口(有邊,高和寬,還有關(guān)閉按鈕)。在舞臺(tái)里面,我們可以放置一個(gè)Scene也就是場(chǎng)景,我們可以把Scene理解為子容器,當(dāng)然也可以切換別的Scene,而在這個(gè)Scene里面,我們可以放置各種控件。
?
場(chǎng)景面板介紹:
布局面板需要和場(chǎng)景搭配使用,如果我們需要將內(nèi)容顯示出來(lái),就需要將內(nèi)容放到內(nèi)容對(duì)象中,同時(shí)也還需要將布局面板與一個(gè)場(chǎng)景綁定在一起,再把場(chǎng)景綁定到舞臺(tái)中,就完成顯示了。
舞臺(tái)(Stage)包含場(chǎng)景(Scene),場(chǎng)景與布局綁定,布局中可以放入多個(gè)控件
?FlowPane流式布局:
是頁(yè)面中元素的寬度按照屏幕分辨率自動(dòng)進(jìn)行適配調(diào)整,也就是我們常說(shuō)的適配,它可以保證當(dāng)前屏幕分辨率發(fā)生改變的時(shí)候,頁(yè)面中的元素大小也可以跟著改變,所以流式布局是移動(dòng)端開(kāi)發(fā)常用的一種布局.其他布局方式后面再做總結(jié).
FlowPane flowpane =new FlowPane();構(gòu)建了布局之后,我們可以往里面放入對(duì)應(yīng)的組件。
需要注意的是,該布局中可以放入任意多個(gè)控件,所以該布局內(nèi)部使用了List集合來(lái)存放多個(gè)控件。
flowpane.getChildren()//子元素集合,這是一個(gè)List集合,其中存放了該布局下所有的控件
如果想要把一個(gè)控件給到該布局,簡(jiǎn)單來(lái)說(shuō)就是將控件加入該子元素集合:
BorderPane邊框布局:
該布局有頂部,底部,左,右與中心區(qū)域的五個(gè)區(qū)域,每個(gè)區(qū)域只能有一個(gè)節(jié)點(diǎn)。
注意:組件都在javafx.scene.control包里面,切記不要導(dǎo)錯(cuò)包
控件介紹
Label 文本標(biāo)簽
Label label=new label("文本標(biāo)簽");
TextField 輸入框
TextField textField=new TextField("請(qǐng)輸入你的用戶(hù)名");
PasswordField 密碼輸入框
PasswordField pwd = new PasswordField();
Button 按鈕?
Button button =new Button("按鈕");
總結(jié)
- 上一篇: 原创wallpaper Engine冷高
- 下一篇: qt获取网卡流量_智能手机变成台式电脑的