JavaFX簡介和Scene Builder工具的安裝使用簡易教程


JavaFX概述和簡介

富互聯網應用是那些提供與Web應用程序類似的功能,並可作為桌面應用程序體驗的應用。與用戶的正常網絡應用程序相比,它們提供更好的視覺體驗。這些應用程序可作為瀏覽器插件或作為虛擬機提供,用於將傳統靜態應用程序轉換為更加增強,流暢,動畫和引人入勝的應用程序。

與傳統的桌面應用程序不同,RIA不需要任何額外的軟件來運行。作為替代需要安裝一些軟件,如:ActiveXJavaFlash,這取決於應用程序使用的組件。

在RIA中,圖形表示在客戶端處理,因為它有一個豐富的圖形提供支持的插件。 簡而言之,RIA中的數據操作在服務器端執行,而相關對象操縱在客戶端端執行。

有三個主要技術可使用於開發豐富的互聯網應用程序(RIA Rich Internet Applications)。三個主要技術如下:

  • Adobe Flash
  • Microsoft Silverlight
  • JavaFX

Adobe Flash

這個軟件平台由Adobe Systems開發,用於創建富互聯網應用程序。 除此之外,還可以構建其他應用程序,如矢量,動畫,瀏覽器游戲,桌面應用程序,移動應用程序和游戲等。

這是開發和執行RIA的最常用平台,桌面瀏覽器滲透率為96%

Microsoft Silverlight

像Adobe Flash一樣,Microsoft Silverlight也是用於開發和執行富互聯網應用程序的軟件應用程序框架。最初,這個框架用於流媒體。當前版本還支持多媒體,圖形和動畫。
這個平台較少使用,用於桌面瀏覽器滲透率66%

JavaFX

JavaFX是一個Java庫,可以使用它開發富互聯網應用程序。通過使用Java技術,這些應用程序的瀏覽器滲透率為76%

JavaFX是什么?

JavaFX是用於構建富互聯網應用程序的Java庫。 使用此庫編寫的應用程序可以跨多個平台一致運行。使用JavaFX開發的應用程序可以在各種設備上運行,如台式計算機,手機,電視,平板電腦等。

要使用Java編程語言開發GUI應用程序,程序員依賴於諸如高級窗口工具包(AWT)和Swings之類的庫。在JavaFX出現之后,這些Java程序開發就可以有效地利用豐富的類庫來開發GUI應用程序。

為什么需要JavaFX

要開發具有豐富特性的客戶端應用程序,程序員過去依賴於各種庫來添加諸如媒體,UI控件,Web,2D和3D等功能。JavaFX將所有這些功能包括在單個庫中。除了這些,開發人員還可以訪問Java庫的現有功能,如:Swings。

JavaFX提供了一組豐富的圖形和媒體API,並通過硬件加速圖形利用現代圖形處理單元。JavaFX還提供了接口,開發人員可以使用它們組合圖形動畫和UI控件。

可以使用JavaFX和基於JVM的技術,如Java,Groovy和JRuby。 如果開發人員選擇JavaFX,沒有必要學習額外的技術,因為任何上述技術的先前知識將足以開發使用JavaFX的RIA。

JavaFX的特性

以下是JavaFX的一些重要功能 -

  • 使用Java語言編寫- JavaFX庫都是用Java編寫的,可用於在JVM上執行的語言,包括Java,Groovy和JRuby。這些JavaFX應用程序也是平台無關的。
  • FXML - JavaFX采用稱為FXML的語言,這是一種類似聲明式標記語言的HTML。這種語言的唯一目的是定義用戶界面。

  • Scene Builder - JavaFX提供了一個名為Scene Builder(場景生成器)的應用程序。 在將此應用程序集成到IDE(如Eclipse和NetBeans)中時,用戶可以訪問拖放設計界面,用於開發FXML應用程序(就像Swing Drag&Drop和DreamWeaver應用程序一樣)。

  • Swing互操作性 - 在JavaFX應用程序中,可以使用Swing Node類嵌入Swing內容。 同樣,可以使用JavaFX功能(如嵌入式Web內容和豐富的圖形媒體)更新現有的Swing應用程序。

  • 內置UI控件 - JavaFX庫UI控件使用它可以開發一個全功能的應用程序。

  • 類似CSS的樣式 - JavaFX提供像樣式的CSS。 通過使用它,可以使用CSS的簡單知識改進應用程序的設計。

  • 畫布和打印API - JavaFX提供了Canvas,即時模式樣式的渲染API。 在包javafx.scene.canvas中,它包含一組用於canvas的類,可以使用它們直接在JavaFX場景的一個區域內繪制。JavaFX還在javafx.print包中提供用於打印目的的類。

  • 豐富的API集合 - JavaFX庫提供了一組豐富的API來開發GUI應用程序,2D和3D圖形等。這套API還包括Java平台的功能。因此,使用此API,可以訪問Java語言的功能,如通用,注釋,多線程和Lambda表達式。傳統的Java集合庫已增強,包括可觀察列表和映射等概念。使用這些,用戶可以觀察數據模型中的更改。

  • 集成圖形庫 - JavaFX為2D和3D圖形提供類。

  • 圖形管道 - JavaFX支持基於硬件加速圖形管道(稱為Prism)的圖形。 當與支持的圖形卡或GPU一起使用時,它提供平滑的圖形。 如果系統不支持圖形卡,則棱鏡默認為軟件渲染堆棧。

JavaFX歷史

JavaFX最初由Chris Oliver開發,當時他正在為一家名為See Beyond Technology Corporation的公司工作,在2005年,這個公司被Sun Microsystems收購了。

這個項目的更多信息,有以下幾點 -

  • 最初,這個項目被命名為F3(表單跟隨函數),它的開發旨在為開發GUI應用程序提供更豐富的界面。

  • Sun Microsystems於2005年6月收購了See Beyond公司,將F3項目改造為JavaFX

  • 在2007年,JavaFX正式在Java One會議上宣布,這是一個年度舉行的世界網絡會議。

  • 在2008年,JavaFX與Net Beans集成。同年,JavaFX 1.0的Java標准開發工具包發布。

  • 在2009年,Oracle公司收購了Sun Microsystems,並在同一年發布了下一個版本的JavaFX(1.2)。

  • 在2010年,JavaFX 1.3開發完成並發布,並在2011年JavaFX 2.0發布。

  • 最新版本JavaFX8,在2014年3月18日作為Java的一個組成部分一起發布。

 
上文出自【易百教程】 原文鏈接: https://www.yiibai.com/javafx/javafx_overview.html

SenceBuilder工具介紹、安裝教程

1. JavaFX Scene Builder是什么?

JavaFX Scene Builder是一種可視布局工具,允許用戶快速設計JavaFX應用程序用戶界面,而無需編碼。用戶可以將UI組件拖放到工作區,修改其屬性,應用樣式表,並且它們正在創建的布局的FXML代碼將在后台自動生成。它的結果是一個FXML文件,然后可以通過綁定到應用程序的邏輯與Java項目組合。

JavaFX Scene Builder 2.0的開發界面如下所示 :

 

JavaFX Scene Builder可以集成到IDE(如EclipseNetbean)中。在這篇文章中,將指導您安裝JavaFX Scene Builder並將其集成到Eclipse中,擴展IDE功能

2. 安裝必須條件

在上文JavaFX歷史中我們介紹到,現在JavaFX 最新版本是JavaFX8版本,JDK8中對JavaFX做了重大升級(JavaFX8),新增了一些界面元素,默認使用了一個新的界面風格,一些API變化(尤其是底層非公開接口部分),同時也引起了一些CSS Class層次的變化,這導致原來在JDK7下寫的JavaFX2程序在升級到JDK8之后,效果一塌糊塗,沒有嚴格遵循FX單線程的地方甚至無法運行。也就是說,最新版本JavaFX程序,並不支持和兼容JDK7及以下版本的JDK

 

因此,首先確保自己的JDK版本在JDK8及以上的版本。那么在Eclipse當中如何查看自己的JDK或者JRE版本呢?(關於JDK和JRE的區別,可參考這篇文章: https://www.cnblogs.com/lsw9/p/8685623.html )

Eclipse中依次點擊 Window--> Preferences--> Java--> Complier

 

 

 

 

如圖,右邊紅色方框里面內容就是你當前所使用的JDK的版本,如果低於JDK8,請去升級更新JDK版本。

 

要將Scene Builder嵌入到Eclipse中,

其次需要安裝e(fx)clipse,這是JavaFX編程所需一組工具(庫)。需要安裝它作為eclipse插件

如果還沒有安裝e(fx)clipse,那么可通過下面的安裝e(fx)clipseEclipse的指南:

3. 下載JavaFX Scene Builder

下載JavaFX Scene Builder 2.0 最新版本很簡單,訪問以下網址下載即可:

 

 

筆者是用的OS是 Winidows x64系統,讀者根據自己OS來選擇對應的安裝文件。

 

補充說一點,國內某多廣告會員博客站點有中文版的Scene Builder工具,個人覺得比官方的英文版工具容易使用。

 

4. 安裝JavaFX Scene Builder

雙擊下載好的 javafx_scenebuilder-2_0-windows.msi,文件進行安裝。安裝的路徑隨意選擇,我的建議是安裝在Eclipse的文件夾根目錄下,因為這Scene BuilderElipse的擴展工具,方便IDE使用者查找和管理。

 

5.設置Eclipse 啟動 JavaFX SenceBuilder 可執行程序的路徑

Eclipse中依次點擊 Window--> Preferences--> JavaFX --> Browser


 

 根據自己安裝Scene Builder的文件路徑 選擇 JavaFX Scene Builder 2.0.exe 文件,然后Apply and Close。 這樣就可以在Eclipse當中使用Scene Builder可視化開發工具了。

Scene Builder 簡易使用教程

這一部分,筆者就和大家如何簡單使用Scene Builder來快速開發圖形程序,參照QQ郵箱網頁版登錄,來開發一個簡單的登錄頁面的圖形UI程序

 

新建一個JavaFX Project,打開Ecipse 依次點擊 File--> New--> Project--> JavaFX --> JavaFX Project

 

 點擊Next>   然后在新彈出窗口里輸入JavaFX Project名, 這里新建一個 項目名為 QQloginUI 的JavaFX Project

 

 

 

 Eclipse會自動生成如下所示的項目文件夾

 

右鍵application --> New --> Other

 

找到JavaFX,雙擊

 

 

FXML文件根據自己的習慣命名,我建立一個名為config的FXML文件,點擊Finish完成。

 

接着,右鍵QQloginUI項目中application包下config.fxml文件,選擇Open with SceneBuilder。(如果還沒有配置Eclipse打開Scene Builder可執行程序路徑,參照上面Scene Builder安裝集成教程)

 

 打開Scene Builder 2.0圖形開發工具 頁面如下

 

 把默認的AnchorPane刪除,然后依次拖入Pane  Label  Line  TextField  CheckBox Button Label

 

#標簽Label 微信登錄# 筆者是這樣設置#Properties 屬性

 

#標簽Label 微信登錄# 的淡藍色背景是這樣設置  Properties--> JavaFX CSS--> Style--> -fx-background-color   #dbf9fb

CSS的樣式: -fx-background-color    顏色值:#dbf9fb

當然CSS的樣式可以采用更加復雜更加美觀的樣式,請大家自行選擇嘗試。標簽Lable QQ登錄 屬性設置同上操作。

 

#文本框TextField 賬號輸入框# 筆者是這樣設置#Properties 屬性

#文本框TextField 密碼輸入框# 同樣設置

 

 #按鈕Button 登錄按鈕# 筆者是這樣設置 Properties 屬性

 

 #按鈕Button 登錄按鈕# 的深藍色背景是這樣設置 Properties--> JavaFX CSS--> Style--> -fx-background-color    #2648f4

CSS的樣式: -fx-background-color    顏色值: #2648f4

 

#標簽Label 掃碼快速登錄登錄#,#標簽Label 忘了密碼?# 筆者如下圖設置字體顏色值: #50cefc

 

按快捷鍵 Ctrl + S  將Sence Builder工具內設計的圖形界面保存到我們QQLoginUI項目 application包下 config.fxml文件中,可以看到config.fxml文件中代碼增加,這是Scene Builder幫我們自動生成的代碼。在Scene Builder中可以點擊 Preview--> Show Preview in Window 護着使用快捷鍵Ctrl + P可以預覽開發的圖形外觀。

 

如下圖所示:

 

用戶登錄設計界面已完成,Scene Builder可以關閉。我們回到Eclipse中編譯運行QQLoginUI項目 application包下 Main.java代碼

會發現,登錄界面呢?怎么圖形程序顯示一片空白?

 

分析產生問題的原因:QQLoginUI項目 application包下 Main.java代碼中的面板容器並沒有關聯到我們開發的圖形程序

解決方法:如下如所示

 

 

然后在Eclipse中運行程序,結果如下圖所示,大功告成。

 

 簡易使用Scene Builder開發UI圖形程序的教程筆者就介紹到這里。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM