<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 十三:JavaFX8新特性以及開發2048游戲 > 來源:[Java 8新特性探究(十三)JavaFX 8新特性以及開發2048游戲](http://my.oschina.net/benhaile/blog/335109) JavaFX主要致力于富客戶端開發,以彌補swing的缺陷,主要提供圖形庫與media庫,支持audio,video,graphics,animation,3D等,同時采用現代化的css方式支持界面設計。同時又采用XUI方式以XML方式設計UI界面,達到顯示與邏輯的分離。與android這方面確實有點相似性。 ### **JavaFX歷史** 跟java在服務器端和web端成績相比,桌面一直是java的軟肋,于是Sun公司在2008年推出JavaFX,彌補桌面軟件的缺陷,請看下圖JavaFX一路走過來的改進 ![](https://box.kancloud.cn/2016-05-04_5729cff0c906a.png) 從上圖看出,一開始推出時候,開發者需使用一種名為JavaFX Script的靜態的、聲明式的編程語言來開發JavaFX應用程序。因為JavaFX Script將會被編譯為Java bytecode,程序員可以使用Java代碼代替。 JavaFX 2.0之后的版本摒棄了JavaFX Script語言,而作為一個Java API來使用。因此使用JavaFX平臺實現的應用程序將直接通過標準Java代碼來實現。 JavaFX 2.0 包含非常豐富的 UI 控件、圖形和多媒體特性用于簡化可視化應用的開發,WebView可直接在應用中嵌入網頁;另外 2.0 版本允許使用 FXML 進行 UI 定義,這是一個腳本化基于 XML 的標識語言。 從JDK 7u6開始,JavaFx就與JDK捆綁在一起了,JavaFX團隊稱,下一個版本將是8.0,目前所有的工作都已經圍繞8.0庫進行。這是因為JavaFX將捆綁在Java 8中,因此該團隊決定跳過幾個版本號,迎頭趕上Java 8。 ### **JavaFx8的新特性** **全新現代主題:Modena** 新的Modena主題來替換原來的Caspian主題。不過在Application的start()方法中,可以通過setUserAgentStylesheet(STYLESHEET_CASPIAN)來繼續使用Caspian主題。 ![](https://box.kancloud.cn/2016-05-04_5729cff0e6cb2.png) 參考http://fxexperience.com/2013/03/modena-theme-update/ **JavaFX 3D** 在JavaFX8中提供了3D圖像處理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子類),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類),SceneAntialiasing等。Camera類也得到了更新。從JavaDoc中可以找到更多信息。 ![](https://box.kancloud.cn/2016-05-04_5729cff11140a.png) **富文本** 強化了富文本的支持 ![](https://box.kancloud.cn/2016-05-04_5729cff134cbc.png) **TreeTableView** ![](https://box.kancloud.cn/2016-05-04_5729cff14a74f.png) **日期控件DatePicker** 增加日期控件 ![](https://box.kancloud.cn/2016-05-04_5729cff171ff0.png) **用于 CSS 結構的公共 API** 1. CSS 樣式設置是 JavaFX 的一項主要特性 2. CSS 已專門在私有 API 中實現(com.sun.javafx.css 軟件包) 3. 多種工具(例如 Scene Builder)需要 CSS 公共 API 4. 開發人員將能夠定義自定義 CSS 樣式 **WebView 增強功能** 1. Nashorn JavaScript 引擎 https://blogs.oracle.com/nashorn/entry/open_for_business 2. WebSocket http://javafx-jira.kenai.com/browse/RT-14947 3. Web Workers http://javafx-jira.kenai.com/browse/RT-9782 ### **JavaFX Scene Builder 2.0** 可視化工具,加速JavaFX圖形界面的開發,[下載地址](http://download.oracle.com/otn-pub/java/javafx_scenebuilder/2.0-b20/javafx_scenebuilder-2_0-windows.msi?AuthParam=1413689191_b1300b23d317876b7e71f9449351c348) JavaFX Scene Builder如同NetBeans一般,通過拖拽的方式配置界面,待完成界面之後,保存為FXML格式文件,此文件以XML描述物件配置,再交由JavaFX程式處理,因此可減少直接以JavaFX編寫界面的困難度。 JavaFX Scene Builder 2.0新增JavaFX Theme預覽功能,菜單「Preview」→「JavaFX Theme」選擇不同的主題,包括: * Modena (FX8). * Modena Touch (FX8). * Modena High Contrast – Black on White (FX8). * Modena High Contrast – White on Black (FX8). * Modena High Contrast – Yellow on Black (FX8). * Caspian (FX2). * Caspian Embedded (FX2). * Caspian Embedded QVGA (FX2). ### **JavaFX 8開發2048游戲** 2048雖然不像前段時間那么火了,但個人還是非常喜歡玩2048,空閑時間都忍不住來一發,感謝 Gabriele Cirulli 發明了這了不起 (并且會上癮)的2048游戲,因為是用MIT協議開源出來,各種語言版本的2048游戲橫空出世,下圖是用JavaFX 8來開發的一款2048。 ![](https://box.kancloud.cn/2016-05-04_5729cff183e5e.png) **所用到的技術** * Lambda expressions * Stream API * JavaFX 8 * JavaFX CSS basics * JavaFX animations**fx2048相關類的說明** * Game2048,游戲主類 * GameManager,包含游戲界面布局(Board)以及Grid的操作(GridOperator) * Board,包含labels ,分數,grid ,Tile * Tile,游戲中的數字塊 * GridOperator,Grid操作類 * Location,Direction 位置幫助類 * RecordManager,SessionManager,紀錄游戲分數,會話類 這里是[源碼地址](http://git.oschina.net/benhail/javase8-sample/tree/master/src/main/java/javase8sample/chapter13/javafx8/fx2048),大家感興趣的可以去學習下 ### **總結** 以上的相關源碼都托管在 [這里](http://git.oschina.net/benhail/javase8-sample/)。 比起AWT和SWING,JavaFX的優勢很明顯,各大主流IDE已經支持JavaFX的開發了,最佳的工具莫過于NetBeans,且隨著lambda帶來的好處,JavaFX的事件處理簡潔了不少,以前需要寫匿名函數類。另外JavaFX開源以來,JavaFX的生態環境也越來越活躍了,包括各種教程,嵌入式嘗試,還有一些開源項目,比如:ControlsFX,JRebirth,DataFX Flow,mvvmFX,TestFX 等等。還有JavaFX是可以運行在[Android](http://www.infoq.com/cn/articles/Building-JavaFX-Android-Apps?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=Java)和ios上面,這個很贊! 好了,總結到這里也差不多了,在RIA平臺上面,有HTML5、Flex和微軟的Sliverlight,JavaFX能否表現優秀,在于大家的各位,只要我們多用JavaFX,那么JavaFX也會越來越優秀,任何語言都是這樣, THE END .
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看