莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          體驗了一把JavaFx

          Posted on 2007-05-18 11:05 dennis 閱讀(22457) 評論(14)  編輯  收藏 所屬分類: java
              JavaOne放出來的新東西,出來也有段時間了,看了論壇和blog上的討論,叫好、不看好的各占一半。今天就去https://openjfx.dev.java.net/ 下載了netbean插件,按照getting startted做了一些例子??傮w來說,JavaFx仍然是在awt/swing的基礎上的包裝,只不過用一層薄薄的性感語法包裝了一把,而且這語法與javascript等腳本語言基本一致,特別是聲明性的編程語法與json非常相似。據sun聲稱要退出一個消費者版本的jre,大概5M-9M大小,消息參見《桌面java的缺陷:面向消費者的jre》,這個恐怕也是給JavaFx專門定制的吧。個人觀點:沒有什么令人激動的新鮮玩意,特別是布局方面仍然是麻煩的layout機制,對多媒體的支持還是比不上flash,優點在于與java服務端通信方面(因為都是java平臺)可能比較有優勢,另外就是消費者版本jre的推出是個好消息,jre實在太大了。

              說了這么多,看看Hello World怎么寫的,實在與json太相似了:
          import javafx.ui.*;
          Frame {
               title: 
          "Hello World JavaFX"
               width: 
          200
               height: 
          200
               content: Label {
                text: 
          "Hello World"
               }
               visible: 
          true
          }

              這是聲明方式來創建一個Frame,Frame里面放個Label,Label上一句Hello World。也可以采用編程方式:
                  var win = new Frame();
                  win.title 
          = "Hello World JavaFX";
                  win.width 
          = 200;
                  
          var label = new Label();
                  label.text 
          = "Hello World";
                  win.content 
          = label;
                  win.visible 
          = true;

          這語法與javascript有什么不同呢?
              再來看看事件處理,仍然遵循MVC模式,比如我們希望輸入框的文字修改能同時修改窗體的title,首先定義一個Model:
                 class HelloWorldModel {
                      attribute saying: String;
                  }

                  var model 
          = HelloWorldModel {
                      saying: 
          "Hello World"
                  };

              把Model綁定到View上:
             
                  var win = Frame {
                      title: bind 
          "{model.saying} JavaFX"
                      width: 
          200
                      content: TextField {
                          value: bind model.saying
                      }
                      visible: 
          true
                  };

          TextFiled的value與model的saying操作進行了綁定,而Frame的title也綁定了model的saying方法,因此輸入框的文字改變的話,也會反映到title上咯。"{model.saying} JavaFX"倒是類似ruby對字符串的處理方法了。這些例子代碼完全來自 Getting Started With JavaFx script language,更多精彩內容請自己解讀。題外話:netbean蠻好用的啊,在我的1G內存機器上跑的挺歡。


          評論

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-05-18 13:18 by 壞男孩
          我的機器只有768M

          # re: 體驗了一把JavaFx[未登錄]  回復  更多評論   

          2007-05-18 13:54 by Leo
          無論是Swing還是javaFX,都需要更好的IDE支持

          JavaFX是一種腳本語言,用JavaFX寫出來的復雜的UI,會不會很難管理和維護

          # re: 體驗了一把JavaFx[未登錄]  回復  更多評論   

          2007-05-18 13:57 by Leo
          http://www.sun-lei.cn/2007/05/17/try-javafx-using-netbeans60m9/

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-05-18 14:27 by dennis
          @Leo
          JavaFx采用這樣的聲明性的類似于xml、json的描述語言,就是為了更好的支持IDE,可視化開發肯定是被充分考慮了。

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-05-18 14:28 by dennis
          @Leo
          我用的是netbean5.5,jdk5,感覺還是很順暢的,netbean6正式版似乎還沒release吧

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-05-18 15:58 by 阿南
          消費者版本jre的推出是個好消息,jre實在太大了。
          好,找個是最好的~這樣RCP打成的包就能更小了~

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-05-19 11:38 by 山風小子
          粗略看了下,Groovy的SwingBuilder就可完成JavaFX所作的事 :)

          # re: 體驗了一把JavaFx  回復  更多評論   

          2007-08-04 09:38 by Matthew Chen
          netbeans挺好的,可惜測試版bug多多,拿來開發有點怕怕,我也在netbeans上用javafx了,m10里面又bug(新出的可視化預覽的bug),改用m9,感覺還行,支持binding和tragger,不過語法似乎還在變動,用早期的代碼還報錯了,可以去看它的源代碼,確實是語法suger,而且運行起來很慢,因為是純粹的解釋然后構件類和對象運行,發布里是源代碼形式的,不會是動態語言吧。

          # re: 體驗了一把JavaFx  回復  更多評論   

          2008-08-04 17:03 by Bin
          我怎么感覺像是在盜版ext...

          # re: 體驗了一把JavaFx  回復  更多評論   

          2008-08-15 10:35 by hello
          ext還是盜版java swing呢

          # re: 體驗了一把JavaFx  回復  更多評論   

          2009-01-21 21:36 by kacakong
          國內第一個JavaFX專業論壇 http://www.thejavafx.com

          # re: 體驗了一把JavaFx[未登錄]  回復  更多評論   

          2009-01-26 05:38 by duduli
          早前就聽過Javafx了,只是最近才開始接觸。
          很簡單的入門。好

          # re: 體驗了一把JavaFx  回復  更多評論   

          2009-07-20 07:43 by 開始
          JavaFx的發展正步入正常軌道,Java Store將是JavaFx的新起點。

          # re: 體驗了一把JavaFx  回復  更多評論   

          2009-07-21 11:48 by idea
          越來越喜歡JavaFx,Java程序員也終于有了RIA利器了。
          主站蜘蛛池模板: 临澧县| 房山区| 高唐县| 桃园县| 保定市| 石首市| 永善县| 沾益县| 汉阴县| 廊坊市| 牙克石市| 广饶县| 盐边县| 建水县| 松潘县| 平舆县| 香港 | 揭西县| 连云港市| 张家口市| 平江县| 平定县| 江安县| 金塔县| 绍兴市| 喜德县| 文化| 克山县| 潼南县| 浪卡子县| 迁西县| 林甸县| 大渡口区| 临夏市| 巴楚县| 乌鲁木齐县| 台东县| 阿尔山市| 桓仁| 马关县| 泉州市|