日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java富客戶端平臺JavaFX:創(chuàng)建框架實戰(zhàn)

2007年JavaOne大會上***對外發(fā)布JavaFX,時隔三年之后,2010年JavaOne大會重點強(qiáng)調(diào)了Oracle針對Java平臺的計劃。未來JavaFX希望在渲染方面具備通用的抽象能力,無論是針對Java 2D/OpenGL/Hospot VM框架或是Javascript/HTML5/Web瀏覽器框架,都可以使用同樣的API來實現(xiàn)。

我們提供的服務(wù)有:做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、臨縣ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的臨縣網(wǎng)站制作公司

JavaFX最早有兩個主要的組成部分:JavaFX腳本和JavaFX移動。JavaFX的核心是JavaFX腳本,它是一種聲明型的腳本語言。它與Java類保持了高度的交互性。JavaFX移動(JavaFX Mobile),是用來為移動設(shè)備開發(fā)Java應(yīng)用的平臺。然而,后來Oracle宣布了JavaFX腳本被廢棄,替換它的是一種新的Java API,用來構(gòu)建JavaFX應(yīng)用,當(dāng)然,也可能從類似JRuby,Clojure,Scala和Groovy等語言中選取代替者。正當(dāng)我猶豫是否將學(xué)習(xí)重心轉(zhuǎn)移到JavaFX上時,2011年JavaFX的發(fā)展前景給我注入了一種強(qiáng)心劑,讓我下定決心來好好學(xué)些JavaFX2.0。

2011年在JavaOne大會上,Oracle秉承一個理念,為了追求JavaFX的標(biāo)準(zhǔn)化,Oracle推出了JavaFX 2.0,為企業(yè)業(yè)務(wù)應(yīng)用提供Java用戶界面(UI)平臺,致力于把Java變成***的富客戶端平臺。未來預(yù)計將對JavaFX平臺實現(xiàn)開源,使其成為OpenJDK社區(qū)的新項目。

一、什么是JavaFX?

JavaFX平臺是Java客戶端平臺的演進(jìn),用于幫助程序開發(fā)人員快速創(chuàng)建和部署富客戶端應(yīng)用程序,實現(xiàn)跨平臺的一致性。JavaFX平臺基于Java技術(shù),提供了一系列的圖表和多媒體API,用于簡化數(shù)據(jù)驅(qū)動的企業(yè)客戶端應(yīng)用程序的開發(fā)。

對于Java開發(fā)人員而言,JavaFX平臺具有以下優(yōu)勢:

1、由于JavaFX平臺是用Java語言編寫的,Java開發(fā)人員可以充分利用他們已有的技能和工具來開發(fā)JavaFX應(yīng)用程序。

2、由于Java被廣泛使用,有經(jīng)驗的Java開發(fā)人員能夠快速高效地開發(fā)JavaFX應(yīng)用程序。

3、通過使用服務(wù)器和客戶端平臺上的Java技術(shù),JavaFX平臺通過減少業(yè)務(wù)解決方案的復(fù)雜性來減低了投資風(fēng)險。

4、基于以上幾點優(yōu)勢,開發(fā)費用也有所減低。

5、JavaFX平臺為廣大開發(fā)人員提供了開發(fā)框架和運行時環(huán)境,用于創(chuàng)建企業(yè)業(yè)務(wù)應(yīng)用程序,同時支持Java實現(xiàn)跨平臺。

二、JavaFX現(xiàn)狀發(fā)展: JavaFX 2.0發(fā)布

在JavaOne 2011大會上,甲骨文在宣布推出Windows 平臺上的JavaFX 2.0版本的同時,也發(fā)布了Mac OS X平臺上的開發(fā)者預(yù)覽版JavaFX 2.0。

JavaFX 2.0 是 JavaFX 一個主要的升級版本,為下一代的 UI 平臺而設(shè)計,提供強(qiáng)大的基于Java 的UI 設(shè)計能力,可處理大規(guī)模數(shù)據(jù)驅(qū)動的商業(yè)邏輯。JavaFX 2.0 包含非常豐富的UI 控件、圖形和多媒體特性,可用于簡化可視化應(yīng)用的開發(fā),新增的 WebView 可直接在應(yīng)用中嵌入網(wǎng)頁;另外 2.0 版本允許使用 FXML 進(jìn)行 UI 定義,這是一個腳本化基于XML 的標(biāo)識語言。

JavaTM SE 7 Update 2 包含了新的JVM,用來提高可靠性和性能,支持Oracle Solaris 11和Firefox 5以及更高版本。Java SE包含了JavaFX,Java JDK包含了JavaFX SDK以及JavaFX運行時環(huán)境。

本月初適用于Windows平臺上的JavaFX 2.1開發(fā)者預(yù)覽版可供下載,該版本包含了新的圖表和復(fù)合框控件。

三、如何創(chuàng)建應(yīng)用程序框架

JavaFX應(yīng)用程序都有一個相似的框架。Main()函數(shù)調(diào)用Launch()函數(shù),Start()方法用于設(shè)置應(yīng)用程序的UI設(shè)計。

如何使用NetBeans 7.1來創(chuàng)建JavaFX項目

1、下載安裝JavaFX 2.0 SDK。我安裝文件的默認(rèn)路徑是C:\Program Files\Oracle\JavaFX 2.0 SDK、C:\Program Files\Oracle\JavaFX Runtime 2.0.

雖然通過命令行的方式可以運行JavaFX應(yīng)用程序,但是我準(zhǔn)備用NetBeans來構(gòu)建我的***個程序。NetBeans 7.1 beta支持JavaFX 2.0,而JavaFX 2.0 SDK需要單獨下載。

我下載了NetBeans 7.1 beta所有版本,因為Java SE、JavaFX都能支持Groovy、Java EE、PHP以及C/C++來創(chuàng)建桌面、Web以及移動應(yīng)用程序。目前的NetBeans IDE支持Windows、 Mac、Linux 以及 Oracle Solaris平臺。它支持Java平臺中的***規(guī)則和標(biāo)準(zhǔn)。而且,NetBeans IDE 7.1 Beta除了支持Java標(biāo)準(zhǔn)外,還支持JavaFX 2.0,并且對JavaFX 2.0應(yīng)用程序可以進(jìn)行完整的編譯、調(diào)試和監(jiān)測。

2、在NetBeans 7.1中創(chuàng)建了一個新的JavaFX項目。創(chuàng)建項目有兩種方法。

“CTRL+SHIFT+N”

右鍵“項目”選項卡,選擇“新建項目”

注:***次在新安裝的NetBeans 7.1beta版本中創(chuàng)建JavaFX項目時需要激活。

3、一旦點擊“完成”按鈕創(chuàng)建完JavaFX項目后,就會生成三個文件。這些文件包括HelloJavaFX.java、Sample.java以及 Sample.fxml。

在項目上點擊“生成”按鈕后,就可以看到NetBeans 7.1 beta生成什么樣的文件。

在'dist'目錄下,可以使用JAR和JNLP文件來生成HTML文件。

四、如何使用內(nèi)置的布局面板

JavaFX應(yīng)用程序支持手動設(shè)置UI布局,可以為每個UI元素來設(shè)置合適的位置和大小屬性,而最簡單的方法是充分利用布局面板。JavaFX SDK提供了幾個布局容器類,稱之為面板,用于輕松創(chuàng)建和管理一些經(jīng)典的布局,比如行、列、棧等。作為調(diào)整后的窗口,布局面板可以根據(jù)節(jié)點的屬性來靈活自動調(diào)整位置和大小。

使用JavaFX提供的布局面板如下:

1、BorderPane

BorderPane布局面板提供了五個區(qū)域來放置節(jié)點:上下左右中。圖1-1顯示了布局類型,可以用來創(chuàng)建邊框面板,可以靈活調(diào)整區(qū)域大小。

邊框面板可以用于創(chuàng)建頂部經(jīng)典的工具條,底部狀態(tài)欄,左端導(dǎo)航欄面板,右邊額外信息,中間的工作區(qū)。

以下代碼為如何在每個區(qū)域里創(chuàng)建一個多邊形邊框面板

 
 
 
 
  1. Example 1-1 Create a Border Pane
  2. BorderPane layout = new BorderPane();
  3. layout.setTop(new Rectangle(200, 50, Color.DARKCYAN));
  4. layout.setBottom(new Rectangle(200, 50, Color.DARKCYAN));
  5. layout.setCenter(new Rectangle(100, 100, Color.MEDIUMAQUAMARINE));
  6. layout.setLeft(new Rectangle(50, 100, Color.DARKTURQUOISE));
  7. layout.setRight(new Rectangle(50, 100, Color.DARKTURQUOISE));

2、Hbox

Hbox布局面板提供了一種簡單的方法來調(diào)整單行中的節(jié)點。

Padding屬性可以用來設(shè)置節(jié)點和Hbox面板之間的間距。Spacing屬性可以用來管理節(jié)點之間的距離??梢哉{(diào)整背景色來調(diào)整風(fēng)格。

以下示例為使用Hbox面板來創(chuàng)建一個工具條,包含兩個按鈕

 
 
 
 
  1. Example 1-2 Create an HBox Pane
  2. HBox hbox = new HBox();
  3. hbox.setPadding(new Insets(15, 12, 15, 12));
  4. hbox.setSpacing(10);
  5. hbox.setStyle("-fx-background-color: #336699");
  6. Button buttonCurrent = new Button("Current");
  7. buttonCurrent.setPrefSize(100, 20);
  8. Button buttonProjected = new Button("Projected");
  9. buttonProjected.setPrefSize(100, 20);
  10. hbox.getChildren().addAll(buttonCurrent, buttonProjected);
  11. BorderPane border = new BorderPane();
  12. border.setTop(hbox); 

3、VBox

VBox布局面板與Hbox布局面板相似。Padding屬性可以用來調(diào)整節(jié)點和VBox面板邊緣的間距。Spacing屬性用于調(diào)整節(jié)點之間的間距。

 
 
 
 
  1. Example 1-3 Create a VBox Pane
  2. VBox vbox = new VBox();
  3. vbox.setPadding(new Insets(10, 10, 10, 10));
  4. vbox.setSpacing(10);
  5. Text title = new Text("Data");
  6. title.setFont(Font.font("Amble CN", FontWeight.BOLD, 14));
  7. vbox.getChildren().add(title);
  8. Text options[] = new Text[] {
  9. new Text(" Sales"),
  10. new Text(" Marketing"),
  11. new Text(" Distribution"),
  12. new Text(" Costs")};
  13. for (int i=0; i<4; i++) {
  14. vbox.getChildren().add(options[i]);
  15. }
  16. border.setLeft(vbox); // Add to BorderPane from Example 1-2

4、GridPane 

GridPane布局面板允許你創(chuàng)建一個靈活的網(wǎng)格,在行列中靈活調(diào)整節(jié)點的布局。

網(wǎng)格可以按照需要在單元格中靈活放置節(jié)點。網(wǎng)格面板適用于創(chuàng)建由行列組成的表格,圖1-8顯示了網(wǎng)格面板,包含了圖標(biāo)、標(biāo)題、副標(biāo)題、文本和餅圖。gridLinesVisible屬性可以用來顯示網(wǎng)格線條,顯示行和列。

 
 
 
 
  1. Example 1-5 Create a Grid Pane
  2. GridPane grid = new GridPane();
  3. grid.setHgap(10);
  4. grid.setVgap(10);
  5. grid.setPadding(new Insets(0, 0, 0, 10));
  6. // Category in column 2, row 1
  7. Text category = new Text("Sales:");
  8. category.setFont(Font.font("Tahoma", FontWeight.BOLD, 20));
  9. grid.add(category, 1, 0);
  10. // Title in column 3, row 1
  11. Text chartTitle = new Text("Current Year");
  12. chartTitle.setFont(Font.font("Tahoma", FontWeight.BOLD, 20));
  13. grid.add(chartTitle, 2, 0);
  14. // Subtitle in columns 2-3, row 2
  15. Text chartSubtitle = new Text("Goods and Services");
  16. grid.add(chartSubtitle, 1, 1, 2, 1);
  17. // House icon in column 1, rows 1-2
  18. ImageView imageHouse = new ImageView(
  19. new Image(LayoutSample.class.getResourceAsStream("graphics/house.png")));
  20. grid.add(imageHouse, 0, 0, 1, 2);
  21. // Left label in column 1 (bottom), row 3
  22. Text goodsPercent = new Text("Goods\n80%");
  23. GridPane.setValignment(goodsPercent, VPos.BOTTOM);
  24. grid.add(goodsPercent, 0, 2);
  25. // Chart in columns 2-3, row 3
  26. ImageView imageChart = new ImageView(
  27. new Image(LayoutSample.class.getResourceAsStream("graphics/piechart.png")));
  28. grid.add(imageChart, 1, 2, 2, 1);
  29. // Right label in column 4 (top), row 3
  30. Text servicesPercent = new Text("Services\n20%");
  31. GridPane.setValignment(servicesPercent, VPos.TOP);
  32. grid.add(servicesPercent, 3, 2);
  33. border.setCenter(grid); // Add to BorderPane from Example 1-2

五、JavaFX應(yīng)用程序成功示例演示

1、Ensemble 

Ensemble提供了一系列的應(yīng)用程序來展示JavaFX的不同特征,比如動畫、圖表、以及控件。

2、Sales Dashboard 

這是Henley汽車公司的一個客戶端-服務(wù)器模式的應(yīng)用程序。使用JavaDB,可以在EJB服務(wù)器上模擬汽車的銷售??梢酝ㄟ^Derbu和web服務(wù)來獲取數(shù)據(jù)信息。通過混合使用FXML和JavaFX,客戶端可以掩飾各種不同的數(shù)據(jù)。

3、SwingInterop Sample

Swing應(yīng)用程序能夠顯示如何有效組合Swing和JavaFX。它可以使用JavaFX組件在一個選項卡中實現(xiàn)圖表和表單,再另一個選項卡中顯示由JavaFX實現(xiàn)的簡單瀏覽器。


文章名稱:Java富客戶端平臺JavaFX:創(chuàng)建框架實戰(zhàn)
文章地址:http://m.5511xx.com/article/cccpdij.html