1. 程式人生 > >JAVAFX-1 開發應用

JAVAFX-1 開發應用

性能 network 拖放 定義 best mar rgs 互聯網 變化

為什麽用javafx?

  • 寫這個專題的目的,其實也是好玩,原來的熟悉的使用swing 來開發java中的gui程序,其實早就知道有javafx 這個東西的,一致沒有時間的玩,最近有時間所以學習.這個專題會參考的其它的現有教程,結合自己對於swing的理解,可能有的地方說得不是太清楚,將就將就吧.
  • swing與javafx的一篇水文章 https://www.zhihu.com/question/37236236
  • 現有參考文章 http://www.yiibai.com/javafx/javafx_overview.html

    javafx是什麽?

  • 實際上就是開發gui程序 ,富互聯網應用是那些提供與Web應用程序類似的功能,並可作為桌面應用程序體驗的應用。與用戶的正常網絡應用程序相比,它們提供更好的視覺體驗。這些應用程序可作為瀏覽器插件或作為虛擬機提供,用於將傳統靜態應用程序轉換為更加增強,流暢,動畫和引人入勝的應用程序。
  • 現有前端技術也可以做gui程序,比如網易雲音樂,網易有道詞典等,性能還可以,不過我們這裏主要說javafx. 其實你有興趣還是可以去看看的網易的開源的拿到api系統

迅速步入開發過程

  • 我們這裏選擇eclipse 喜歡的idea 可以用idea構建學習.它們都提供 了相應的構建插件
  • 開發環境下載地址:
  • 這裏我給的是直接的ide下載環境,隨著eclipse 叠代更新
    http://downloads.efxclipse.bestsolution.at/downloads/nightly/sdk/
    技術分享圖片

  • 如果你要手動集成開發環境可以看下面這篇文章
    http://www.yiibai.com/javafx/install-efxclipse-into-eclipse.html
  • JavaFX Scene Builder下載
    JavaFX Scene Builder是一種可視布局工具,允許用戶快速設計JavaFX應用程序用戶界面,而無需編碼。用戶可以將UI組件拖放到工作區,修改其屬性,應用樣式表,並且它們正在創建的布局的FXML代碼將在後臺自動生成。它的結果是一個FXML文件,然後可以通過綁定到應用程序的邏輯與Java項目組合。
    可以有效與eclipse 進行集成 ,這裏選擇 2..版本
    技術分享圖片

地址: http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html

技術分享圖片

  • 如何集成到eclipse
    http://www.yiibai.com/javafx/install-javafx-scene-builder-into-eclipse.html

  • 開發理論
    上面的開發環境部署就這麽多,下面大概介紹一下開發基礎理論,javafx不再是單獨的mvc 開發模式,雖然說本質上還是,如何你是一個了解安卓開發的,那麽很快就會熟悉javafx開發 ,他們有很多相類似的地方,請看下面這張圖
    技術分享圖片

在VIEW上顯示它
用戶使用CONTROLLER
操作數據(更新,修改,刪除,..),MODEL上的數據已更改。
在VIEW上顯示MODEL的數據。

  • 造 hello world
    構建應用程序
  1. 從”File”菜單中選擇”New Project”。
  2. 在”JavaFX”應用程序分類中,選擇”JavaFX Application”,單擊”Next”按鈕。
  3. 將Project命名為”HelloWorld”並單擊”Finish”按鈕。

    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    ?
    public class HelloWorld extends Application {
    ?
    ?? @Override
    ?? public void start(Stage primaryStage) {
    ?????? Button btn = new Button();
    ?????? btn.setText(“Say 'Hello World'”);
    ?????? btn.setOnAction(new EventHandler<ActionEvent>() {
    ?????????? @Override
    ?????????? public void handle(ActionEvent event) {
    ??????????????System.out.println(“Hello World!”);
    ?????????? }
    ?????? });
    ?
    ?????? StackPane root = new StackPane();
    ?????? root.getChildren().add(btn);
    ?????? Scene scene = new Scene(root, 300, 250);
    ?
    ?????? primaryStage.setTitle(“Hello World!”);
    ?????? primaryStage.setScene(scene);
    ?????? primaryStage.show();
    ?? }
    ?
    ?? public static void main(String[] args) {
    ?????? launch(args);
    ?? }
    }

    ● JavaFX應用程序的主類需要繼承自application.Application類。start()方法是所有JavaFX應用程序的入口。
    ● JavaFX應用程序將UI容器定義為舞臺(Stage)與場景(Scene)。Stage類是JavaFX頂級容器。Scene類是所有內容的容器。例3-1中創建了Stage和Scene,然後為Scene設置了大小並使其可見。
    ● 在JavaFX中,Scene中的內容會以由圖形節點(Node)構成的分層場景圖(Scene Graph)來展現。在本例中,root節點是一個StackPane對象,它是一個可以調整大小的layout節點。這就意味著在用戶改變stage大小時,root節點可以隨scene的大小變化而變化。
    ● root節點包含一個帶文本的按鈕子節點,按鈕上添加了一個事件處理器(Event Handler),它在點擊按鈕時會向控制臺輸出信息。
    ● 當JavaFX應用程序是通過JavaFX Packager工具打包時,main()方法就不是必需的的了,因為JavaFX Package工具會將JavaFX Launcher嵌入到JAR文件中。但是保留main()方法還是很有用的,這樣你可以運行不帶有JavaFX Launcher的JAR文件,例如在使用某些沒有將JavaFX工具完全集成進去的IDE時。另外嵌入了JavaFX代碼的Swing應用程序仍需要main()方法。
    技術分享圖片

  • 運行效果

技術分享圖片

JAVAFX-1 開發應用