Just Java IT

          西門町學士關于Java的隨便一說而已……

          走進JavaFX-(1)

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

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

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

          Feedback

          # re: 走進JavaFX-(1) 2008-07-18 11:55 如坐春風

          有沒有復雜程序的展示?  回復  更多評論   

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

          background: Color.ORANGE
          ???  回復  更多評論   

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

          @如坐春風
          后面一定show一個比較復雜點的UI  回復  更多評論   

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

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

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

          勞駕問下 現在javafx的最好的IDE是什么呢?除了NetBeans  回復  更多評論   

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

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

          主站蜘蛛池模板: 焉耆| 延津县| 保山市| 青海省| 大田县| 来凤县| 昌图县| 东辽县| 兴城市| 淅川县| 齐河县| 清徐县| 化隆| 万州区| 南澳县| 江阴市| 泽州县| 永昌县| 江永县| 灵寿县| 西平县| 兖州市| 新竹市| 宜州市| 时尚| 揭东县| 芮城县| 肥城市| 禹州市| 伊宁县| 高尔夫| 漠河县| 鱼台县| 开封县| 南阳市| 潜山县| 聊城市| 保德县| 黄大仙区| 东乡族自治县| 稻城县|