<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java究竟怎么玩?

      天地程序已定棋,人間大數待變局

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理
       

      最近Java社區最火的就是JavaFX Script發布了,并且Sun同時公布了JavaFX Script的開源網站:openJfxJavaFX Script是Sun的RIA解決方案,是一種用于編寫能夠在支持Java的PC和手機上運行的應用軟件的更簡單的腳本語言。其編寫的程序可以直接在Java虛擬機上運行(Java 1.5以上),從其運行的環境、方式看,這是Adobe Apollo的勁敵,其運行的效果大家可以查看官方的演示程序(注意,需要Jre 1.5),效果很驚人的哦。下面是其中一個演示的效果圖:

      點擊運行演示程序

      語法來看,JavaFX Script是個Java和VRML的混合體,既有Java的優點(面向對象,繼承等等),又有VRML的優點(圖形描述)。在IDE支持方面,目前以及推出NetBeans和Eclipse的插件,雖然功能還不是很強大,但相信等JavaFX Script正式發布的時候,IDE方面的支持會持續加強的,比如可視模式的UI編輯、語法提示等。

      OpenJfx官方有一個基于NetBeans的JavaFX Script 起步,考慮到Flex開發中eclipse(FlexBuilder)的使用情況,今天我們將基于Eclipe來一起開始我們的JavaFX Script發現之旅。文中除了將原文的使用NetBeans更改為Eclipse,其他均翻譯自官方文檔。

      要完成我們今天的旅途,您首先需要安裝Eclipse 3.2.2,以及安裝FlexBuilder也可以,另外如果您的Jre版本低于1.5請升級

      安裝JavaFX Script For Eclipse插件

      首先我們來安裝JavaFX Script For Eclipse插件,官方的安裝說明在這里,安裝步驟如下:

      1. 啟動Eclipse/FlexBuilder;
      2. 從主菜單選擇 Help > Software Updates > Find and Install;
      3. 在Install/Update對話框中, 選擇Search for New Features to Install然后點擊Next;
      4. 點擊New Remote Site;
      5. 在New Update Site對話框中,在Name中輸入JavaFX
      6. 在URL中輸入:http://download.java.net/general/openjfx/plugins/eclipse/site.xml;
      7. 點擊OK;
      8. 在Install窗口中點擊Finish;
      9. 在Updates對話框中選擇JavaFX > JavaFX node > 然后點擊Next;
      10. 接受協議并點擊Next;
      11. 點擊Next和Finish;
      12. 在Verification對話框中選擇Install All;
      13. 安裝完成后重啟Eclipse,JavaFX Script Eclipse 插件就安裝完成了。

      新建JavaFX工程

      以上準備好了JavaFX Script的Eclipse開發環境,現在我們來實際開始JavaFX Script之旅。

      我們需要創建一個Java工程來存放我們的JavaFX Script文件。

      1. 從Eclipse的主菜單選擇New > Project
      2. 在選擇工程向導窗口中選擇Java Project
      3. 點擊Next
      4. 輸入Project Name為:JavaFXapp
      5. 不需要添加JavaFX Script Lib,運行JavaFX Script程序時,Eclipse會自動添加并設置環境的。點擊Finish,完成。

        現在JavaFXapp工程就創建好了,如下圖:

      創建我們第一個JavaFX程序

      現在,開始用Eclipse創建我們第一個JavaFX HelloWorld 程序。

      1. 右擊JavaFXapp > New > Other
      2. 在New窗口中選擇JavaFX > JavaFX File,
      3. 點擊Next,在File name輸入:HelloWorld.fx,
      4. 點擊Finish,HelloWorld.fx就被添加到JavaFXapp工程中,并且在右邊自動被打開了。
      5. 將下面代碼粘貼到HelloWorld.fx中:
        import javafx.ui.*;

        Frame {
        title: "Hello World JavaFX"
        width: 200
        height: 50
        content: Label {
        text: "Hello World"
        }
        visible: true
        }

      運行我們的第一個JavaFX程序

      現在讓我們用Eclipse運行我們的第一個JavaFX程序。

      1. 在Eclipse主菜單,選擇Run > Run...:
      2. 在Run窗口中,雙擊JavaFX Application:
      3. 然后在Name輸入:HelloWorld:
      4. 點擊Arguments,在Program arguments中輸入我們的JavaFX程序名稱:HelloWorld,這里的名稱與Java類名一致,如果我們的HelloWorld存放在prac目錄下,那們就輸入prac.HelloWorld:
      5. 點擊Run,自動編譯運行,將出現下面運行窗口:

      恭喜,我們現在完成了第一個JavaFX程序。

      語法解釋

      正如您在前面章節看到的,JavaFX語言提供了一種用于表述用戶界面組件結構和內容的聲明式的語法(Declarative Syntax)。為了幫助您理解發生了什么,我們使用類似于Swing的純程序的形式(類似AS3)重寫以上代碼:

      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;

      以上源代碼同樣是正確的JavaFX程序并且和前面的運行效果相同。

      以下同時說明了以上聲明式和程序式方式的代碼實際發生了什么:

      1. 調用Frame類構造器創建一個新的Frame。
      2. 對Frame的title、width、visible和content屬性進行賦值。
      3. 在content屬性的賦值過程中,調用Label類構造器創建了一個新的Label,并且給它的text屬性賦了一個值。

      但是,即使像這里這么極端簡單的示例中,描述性語法編寫的程序的意識還是更加容易理解。

      因為聲明式編程(declarative programming)可以從單個表達式創建程序,如前面第一個例子,表達式的根一般為一個生成程序的對象圖形的對象分配表達式(構造器)。

      添加動態行為(dynamic behavior)

      上面的“Hello World”程序沒有動態行為。在JavaFX中 創建一個帶動態行為的圖形用戶接口,即創建一個屬性依賴其他對象屬性值的圖形用戶接口組件(和Flex中的綁定的概念一致)。這些其他對象可以是任何您覺 得合適的代表您的應用狀態的對象。因為該GUI組件的屬性依賴于另一個對象,它會自動反應任何時候您對另一個對象的修改。相應的,GUI組件是視圖 (View)而另一個對象就是模型(Model),下面是“Hello World”程序的Model/View版本:

      import javafx.ui.*;
       
      class HelloWorldModel {
      attribute saying: String;
      }
       
      var model = HelloWorldModel {
      saying: "Hello World"
      };
       
      var win = Frame {
      title: "Hello World JavaFX"
      width: 200
      height: 50
      content: Label {
      text: bind model.saying
      }
      visible: true
      };

      運行程序顯示如下:

      如果model對象的saying改成下面這樣:

      model.saying = "Goodbye Cruel World!";

      運行結果將變為下圖所示:

      注意該示例通過JavaFX的bind操作將label的text屬性初始化為mode的saying屬性。在這里,bind操作聲明增量更新。這意味著任何時候model.saying改變,label的text屬性都將更新為相同的值。

      對于輸入構件,如按鈕、復選框和文本輸入域,模式屬性和GUI組件之間的連接可以是雙向的。

      考慮以下示例:

      import javafx.ui.*;
       
      class HelloWorldModel {
      attribute saying: String;
      }
       
      var model = HelloWorldModel {
      saying: "Hello World"
      };
       
      var win = Frame {
      title: bind "{model.saying} JavaFX"
      width: 200
      height: 50
      content: TextField {
      value: bind model.saying
      }
      visible: true
      };

      運行該程序,顯示如下:

      如果您在文本輸入域中輸入其他內容然后敲回車,窗口的標題將相應的改變:

      在這一情況下,文本域的值的更新是用戶輸入的結果(通過TextField類的實現)。當model的saying屬性 更新到與文本域相同值發生時,因為該表達式指定窗口的title屬性依賴于model的saying屬性,表達式被重新計算并且窗口的title屬性更新 到上面的結果。但是,這樣的內容表達依然是聲明。

      posted on 2007-08-19 18:48  cping  閱讀(228)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美日韩成人综合一区| 成人毛片一区二区| 熟女人妻aⅴ一区二区三区电影| 亚洲综合另类小说色区一| 久久亚洲av成人一二三区| av中文字幕在线二区| 四虎影视一区二区精品| 性做久久久久久久久| 午夜男女爽爽影院免费视频下载| 亚洲综合伊人久久大杳蕉| 99久久精品久久久久久婷婷| 精品黄色av一区二区三区 | 国产福利微视频一区二区| 中文人妻av高清一区二区| av天堂午夜精品一区| 国产美女深夜福利在线一| 人妻丝袜AV中文系列先锋影音| 精品视频一区二区福利午夜| av天堂午夜精品一区| 国产精品成人亚洲一区二区| 国产午夜福利在线视频| 青青草无码免费一二三区| 国产美女深夜福利在线一 | 91麻精品国产91久久久久| 无遮高潮国产免费观看| 亚洲 自拍 另类小说综合图区| 国产精品第一页中文字幕| 美乳丰满人妻无码视频| 换着玩人妻中文字幕| 东京热人妻中文无码| 一区二区三区AV波多野结衣| 男女一级国产片免费视频| 天堂网www在线资源网| 99亚洲男女激情在线观看| 亚洲区综合区小说区激情区| 一道本AV免费不卡播放| 亚洲精品一区二区三区婷婷月| 国产成人无码区免费内射一片色欲| 国产极品粉嫩学生一线天| 在线日韩日本国产亚洲| 久热综合在线亚洲精品|