Just Java IT

          西門町學(xué)士關(guān)于Java的隨便一說而已……

          走進(jìn)JavaFX-(1)

          /**
          寫這篇文章之前我先google了一下JavaFX的接受度,結(jié)果一篇文章跳進(jìn)我的視線:(2007年8月)Michael Urban寫的:為什么沒人對JavaFX感興趣?(原文:JavaFX: How Much Interest Is there?)。國外尚且如此,國內(nèi)FX的環(huán)境就可想而知了。看來為了繼續(xù)推廣JavaFX,Sun還需更多的工作去做。文章在最后說:我們作為Java族的一員是否該為增加JavaFX的興趣度而做點(diǎn)什么呢?呵呵,應(yīng)該的啦,所以就準(zhǔn)備寫寫JavaFX的文章了。
          原創(chuàng):西門町學(xué)士
          */
          JavaFX出來已經(jīng)很長一段時間了。一直在計(jì)劃跟進(jìn),可是因?yàn)楸容^懶,現(xiàn)在才慢慢地學(xué)習(xí)。這里就暫做做學(xué)習(xí)總結(jié)的地方吧。
          雖 然是總結(jié),我還是打算寫詳細(xì)一點(diǎn)。本來我對JavaFX了解也不是很多,有的東西還要在網(wǎng)上查證了才能寫(比較JavaFX是如何誕生,如何從F3變成 JavaFX的)。今天要寫的主要是:1、JavaFX的前世今生;(了解了它的歷史也就了解了它是什么,它的發(fā)展方向,呵呵)2、如何擁有 JavaFX;(知道從哪里去下載開發(fā)工具,如何配置它)3、Hello JavaFX World(當(dāng)然,一個經(jīng)典的Hello World是不能少的)
          1、前世今生
          如果你抱有太高的期望,希望在這里把JavaFX弄得清清楚楚,恐怕你要失望了。說實(shí)話,我也不清楚。甚至有人建議我從Applet開始講,Oh NO!!
          這 里,我不準(zhǔn)備講DSL,也不打算講Swing。我能想到的開頭就是:一個叫Chris Oliver的家伙,覺得用Java語言(以及差不多的語言,包括VCVBDelphiC#)做GUI開發(fā)太蹩腳了。他覺得開發(fā)GUI應(yīng)該是采用聲明式的 語言(比如:上帝說,要有光。于是有了光),而且還非常英明地放棄了當(dāng)時(以及現(xiàn)在)流行的XML方式(MS和Mozilla都走了這條道),于是,他開 發(fā)了F3。為什么叫F3呢,因?yàn)樗?dāng)時想的是Form Follows Function,3個F。從名字可以看出,目標(biāo)就是Form,說白了就是GUI。它的語法很符合GUI的本質(zhì)(而且如果你碰巧還接觸過VRML的話,你 會覺得非常習(xí)慣)。由于當(dāng)今的世界是DSL大行其道的世界,于是F3得到的關(guān)注越來越多,到了2007年的JavaOne上,Sun正式宣布將F3整編成 Java大家族的一員大將,并改名叫做JavaFX。(想知道更多可以去Chris在Sun的blog
          2、如何擁有
          首先保證你有Java SE在你的電腦上,如果你不知道什么是JDK,讓你看到這里是我的錯。
          JavaFX的大本營是java.net,具體位置是https://openjfx.dev.java.net/。Sun還另開了一個javafx.com,用來推介JavaFX。(有點(diǎn)類似于java.net和java.com的作用)。
          最 開始的JavaFX是解釋性執(zhí)行的,用文本編輯器寫好代碼后就可以直接運(yùn)行。為了提高執(zhí)行效率,現(xiàn)在又開發(fā)了編譯器,用于把JavaFX代碼編譯成 bytecode,即class文件。這個class文件和用jdk編譯的Java得到的class是一樣的。當(dāng)然,它的運(yùn)行是需要JavaFX庫的支持 的。估計(jì)今后的JavaFX都是采用編譯后運(yùn)行。
          到大本營后按頁面的鏈接去下載最新的JavaFX。目前的版本是javafxc編譯器的Milestone 3,地址是:http://openjfx.java.sun.com/builds/javafxc-M3/。下載回來后直接解壓縮就OK了。這里我們解壓縮釋放在D:\openjfx目錄下。現(xiàn)在你就擁有JavaFX的全部了:編譯器、運(yùn)行時庫、示例Demo、幫助文檔等等。
          另 外,為了方便開發(fā),我們還有另外一種獲取JavaFX的方式,通過IDE的JavaFX plugin。同樣,在java.net的openjfx項(xiàng)目上也有很詳細(xì)的說明。可根據(jù)個人的習(xí)慣選擇NetBeans或是Eclipse等。我偏愛用 NetBeans,因此后面有很多例子將會在NetBeans下開發(fā)的。當(dāng)然,原理都是一樣的。
          3、Hello FX World
          記住兩點(diǎn):1、大小寫敏感;2、包跟Java中是一樣的,但對文件名不要求,后綴名建議用fx。(不像Java中文件名是類名)
          我們的第一個JavaFX程序:

          package tmp;

          import javafx.ui.*;
          import javafx.ui.canvas.*;

          /**
           * @author a1
           */

          // place your code here
          Frame {
              title: "Hello World"
              width: 300
              height: 100
              background: Color.ORANGE
              visible: true
              content:
              FlowPanel {
                  content:Button {
                      text: "Click!"
                      action: function():Void {
                          MessageDialog {
                              title: "Hello JavaFX"
                              message: "Have fun!\nThis is your first JavaFX app!"
                              visible: true
                          }
                      }
                  }
              }
          }


          保存在D:\tmp\HelloFX.fx。
          打開命令行,進(jìn)入D:\tmp,運(yùn)行:D:\openjfx\bin\javafxc HelloFX.fx,如果你沒有寫錯的話,應(yīng)該成功編譯。
          然后退回D:\(因?yàn)閠mp是我們要用的package),運(yùn)行:D:\openjfx\bin\javafx tmp.HelloFX,程序就成功運(yùn)行了。結(jié)果如圖:

          基本步驟講到這里,以后就不再重復(fù)。具體的代碼一目了然,我也就不啰嗦了。

          posted on 2008-07-18 11:12 西門町學(xué)士 閱讀(1848) 評論(6)  編輯  收藏 所屬分類: Java

          Feedback

          # re: 走進(jìn)JavaFX-(1) 2008-07-18 11:55 如坐春風(fēng)

          有沒有復(fù)雜程序的展示?  回復(fù)  更多評論   

          # re: 走進(jìn)JavaFX-(1) 2008-07-18 12:38 Classicning

          background: Color.ORANGE
          ???  回復(fù)  更多評論   

          # re: 走進(jìn)JavaFX-(1) 2008-07-21 15:19 西門町學(xué)士

          @如坐春風(fēng)
          后面一定show一個比較復(fù)雜點(diǎn)的UI  回復(fù)  更多評論   

          # re: 走進(jìn)JavaFX-(1) 2008-07-21 15:26 西門町學(xué)士

          @Classicning
          本來是想把背景色設(shè)為橙色,可是上面又加了一個FlowPanel,把顏色擋住了。
          可以把FlowPanel的背景色設(shè)一下,比如:
          FlowPanel {
          background: Color.ORANGE
          content:Button {  回復(fù)  更多評論   

          # re: 走進(jìn)JavaFX-(1) 2010-01-12 16:31 伊人

          勞駕問下 現(xiàn)在javafx的最好的IDE是什么呢?除了NetBeans  回復(fù)  更多評論   

          # re: 走進(jìn)JavaFX-(1) 2010-01-13 10:29 西門町學(xué)士

          @伊人
          呵呵,如果做GUI(包括Swing、javaFX)以及JavaME,最好的IDE依然是NetBeans  回復(fù)  更多評論   

          主站蜘蛛池模板: 盐城市| 旺苍县| 行唐县| 宜兰县| 维西| 余江县| 乐业县| 太保市| 新和县| 敦煌市| 永胜县| 兴化市| 东丰县| 巴林左旗| 德兴市| 白山市| 盐边县| 通州市| 奎屯市| 忻城县| 宝坻区| 永修县| 盐池县| 闻喜县| 旺苍县| 蓝田县| 台湾省| 沙洋县| 安顺市| 临夏市| 泸西县| 红桥区| 新和县| 麟游县| 丹棱县| 嘉鱼县| 婺源县| 北宁市| 汽车| 张北县| 宁南县|