JavaFX 是 Sun微系統(tǒng)公司推出的一套基于 Java 技術(shù)的產(chǎn)品家族,其目的是為從桌面機(jī)、移動設(shè)備提供一致的用戶體驗(yàn)。它與最新版本的Java SE Runtime Environment (JRE) 和 Development Kit (JDK)綁定,并且有可以直接調(diào)用Java API的能力。
雖然JavaFX Script 運(yùn)用類似Java 和JavaScript 的程序語言,但是最重要的還是要懂得區(qū)分JavaFX與Java的不同之處。在此特別之處的理解會對那些剛剛從事探究JavaFX 是RESTful 網(wǎng)絡(luò)服務(wù)的invocation的Java開發(fā)者是有很大幫助的。
這個十分鐘的解決方案來演示如何從Java FX 調(diào)用RESTful 網(wǎng)絡(luò)服務(wù)和如何得出結(jié)果。
這是一個例子來展示如何命令一個提供航班離開和到達(dá)信息的RESTful網(wǎng)絡(luò)服務(wù)到JavaFX的前端。對于服務(wù)器URL,這是刪節(jié)的服務(wù)數(shù)據(jù):
< schedule>
< flight>
< number>101< /number>
< time>11:08:45< /time>
< direction>Departure< /direction>
< carrier>USFlair< /carrier>
< destination>TYS< /destination>
< origin>ATL< /origin>
< /flight>
< /schedule>
問題
怎樣從一個JavaFX應(yīng)用程序呼叫RESTful 網(wǎng)絡(luò)服務(wù)并且如何得出結(jié)果?
解決方案
調(diào)用一個GET RESTful網(wǎng)路服務(wù)方法并且把它的結(jié)果分析到JavaFX目標(biāo)當(dāng)中。
定義一種容器數(shù)據(jù)結(jié)構(gòu)
開始,在一個Flight.fx文件中,定義一個與航班元素結(jié)構(gòu)相對應(yīng)的的JavaFX分類:
public class Flight{
public var number: String;
public var time: String;
public var direction: String;
public var carrier: String;
public var destination: String;
public var origin: String;
訪問服務(wù)
在一個主要的JavaFX應(yīng)用程序(Main.fx)或在您的設(shè)計(jì)的地方,從一個運(yùn)用JavaFX object HttpRequest (參見Listing 1)的函數(shù)loadFlightsSchedules調(diào)用一個RESTful網(wǎng)絡(luò)服務(wù)。所有相關(guān)的特性和功能都在HttpRequest公布的范圍之內(nèi)被公布。
說明的是網(wǎng)絡(luò)服務(wù)的URL被指定為一個本地變量并且方法GET(雖然JavaFX支持PUT 和 POST)被指定為同樣名字的變量。你可以用request.enqueue()執(zhí)行網(wǎng)絡(luò)服務(wù)呼叫;如果成功了,可以用方法onInput: function(input: java.io.InputStream).來處理結(jié)果。
分析結(jié)果
在功能onInput: function(input: java.io.InputStream)中,Listing 1處理的XML結(jié)果是從被激活FlightsParser的網(wǎng)絡(luò)服務(wù)得來的。而FlightsParser它是一個JavaFX object javafx.data.pull.PullParser的自定義擴(kuò)展名。PullParsers支持直接詢問和基本的XML分析(與SAX分析器一樣)。
加載從分析過的XML原理到航班目標(biāo)。你可以用目錄2種的縮寫碼。
完成
這個快速10分鐘的解決方案演示了如何運(yùn)用 GET 方法來調(diào)用一個RESTful 網(wǎng)絡(luò)服務(wù)和如何用最小的錯誤處理把它的結(jié)果分析到JavaFX目標(biāo)當(dāng)中。
有關(guān)網(wǎng)絡(luò)服務(wù)處理和解析其他數(shù)據(jù)類型的細(xì)節(jié),參看JavaFX objects javafx.io.http, javafx.data.pull, 和 javafx.data.xml.
雖然JavaFX Script 運(yùn)用類似Java 和JavaScript 的程序語言,但是最重要的還是要懂得區(qū)分JavaFX與Java的不同之處。在此特別之處的理解會對那些剛剛從事探究JavaFX 是RESTful 網(wǎng)絡(luò)服務(wù)的invocation的Java開發(fā)者是有很大幫助的。
這個十分鐘的解決方案來演示如何從Java FX 調(diào)用RESTful 網(wǎng)絡(luò)服務(wù)和如何得出結(jié)果。
這是一個例子來展示如何命令一個提供航班離開和到達(dá)信息的RESTful網(wǎng)絡(luò)服務(wù)到JavaFX的前端。對于服務(wù)器URL,這是刪節(jié)的服務(wù)數(shù)據(jù):
< schedule>
< flight>
< number>101< /number>
< time>11:08:45< /time>
< direction>Departure< /direction>
< carrier>USFlair< /carrier>
< destination>TYS< /destination>
< origin>ATL< /origin>
< /flight>
< /schedule>
問題
怎樣從一個JavaFX應(yīng)用程序呼叫RESTful 網(wǎng)絡(luò)服務(wù)并且如何得出結(jié)果?
解決方案
調(diào)用一個GET RESTful網(wǎng)路服務(wù)方法并且把它的結(jié)果分析到JavaFX目標(biāo)當(dāng)中。
定義一種容器數(shù)據(jù)結(jié)構(gòu)
開始,在一個Flight.fx文件中,定義一個與航班元素結(jié)構(gòu)相對應(yīng)的的JavaFX分類:
public class Flight{
public var number: String;
public var time: String;
public var direction: String;
public var carrier: String;
public var destination: String;
public var origin: String;
訪問服務(wù)
在一個主要的JavaFX應(yīng)用程序(Main.fx)或在您的設(shè)計(jì)的地方,從一個運(yùn)用JavaFX object HttpRequest (參見Listing 1)的函數(shù)loadFlightsSchedules調(diào)用一個RESTful網(wǎng)絡(luò)服務(wù)。所有相關(guān)的特性和功能都在HttpRequest公布的范圍之內(nèi)被公布。
說明的是網(wǎng)絡(luò)服務(wù)的URL被指定為一個本地變量并且方法GET(雖然JavaFX支持PUT 和 POST)被指定為同樣名字的變量。你可以用request.enqueue()執(zhí)行網(wǎng)絡(luò)服務(wù)呼叫;如果成功了,可以用方法onInput: function(input: java.io.InputStream).來處理結(jié)果。
分析結(jié)果
在功能onInput: function(input: java.io.InputStream)中,Listing 1處理的XML結(jié)果是從被激活FlightsParser的網(wǎng)絡(luò)服務(wù)得來的。而FlightsParser它是一個JavaFX object javafx.data.pull.PullParser的自定義擴(kuò)展名。PullParsers支持直接詢問和基本的XML分析(與SAX分析器一樣)。
加載從分析過的XML原理到航班目標(biāo)。你可以用目錄2種的縮寫碼。
完成
這個快速10分鐘的解決方案演示了如何運(yùn)用 GET 方法來調(diào)用一個RESTful 網(wǎng)絡(luò)服務(wù)和如何用最小的錯誤處理把它的結(jié)果分析到JavaFX目標(biāo)當(dāng)中。
有關(guān)網(wǎng)絡(luò)服務(wù)處理和解析其他數(shù)據(jù)類型的細(xì)節(jié),參看JavaFX objects javafx.io.http, javafx.data.pull, 和 javafx.data.xml.