JavaFx的第一個程序

一、概述

JavaFX是由甲骨文公司推出的一系列的產品和技術,該產品於2007年5月在JavaOne大會上首次對外公佈。JavaFX技術主要應用於創建Rich Internet application(RIAs)。使用此庫編寫的應用程序可以跨多個平臺一致運行。 使用JavaFX開發的應用程序可以在各種設備上運行,如臺式計算機,手機,電視,平板電腦等。
爲了使用Java編程語言開發GUI應用程序,程序員依賴於諸如高級窗口工具包Swings之類的庫 。 在JavaFX出現之後,這些Java程序員現在可以利用豐富的內容有效地開發GUI應用程序。

二、JavaFX架構

JavaFX提供了一個完整的API,提供了豐富的類和接口來構建具有豐富圖形的GUI應用程序。

這個API的重要包是:


  1. javafx.animation - 包含向JavaFX節點添加基於過渡的動畫(例如填充,淡化,旋轉,縮放和平移)的類。
  2. javafx.application - 包含一組負責JavaFX應用程序生命週期的類。
  3. javafx.css - 包含向JavaFX GUI應用程序添加類似CSS樣式的類。
  4. javafx.event - 包含用於傳遞和處理JavaFX事件的類和接口。
  5. javafx.geometry - 包含用於定義2D對象並對其執行操作的類。
  6. javafx.stage - 此包包含JavaFX應用程序的頂級容器類。
  7. javafx.scene - 這個包提供了類和接口來支持場景圖。 此外,它還提供了諸如畫布,圖表,控件,效果,圖像,輸入,佈局,媒體,油漆,形狀,文本,變換,網絡等子包。有幾個組件支持這種豐富的JavaFX API
在JavaFX中,GUI應用程序使用場景圖進行編碼。 場景圖是GUI應用程序構造的起點。 它保存被稱爲節點的(GUI)應用原語。
節點是一個視覺/圖形對象,它可以包括:
  • 幾何(圖形)對象 - (2D和3D),如圓形,矩形,多邊形等。
  • UI控件 - 例如按鈕,複選框,選擇框,文本區域等。
  • 容器 - (佈局窗格),例如邊框窗格,網格窗格,流窗格等。
  • 媒體元素 - 例如音頻,視頻和圖像對象。
通常,節點的集合形成場景圖。 所有這些節點按照如下所示的分級順序排列。

場景圖中的每個節點具有單個父節點,並且不包含任何父節點的節點被稱爲根節點 同樣,每個節點有一個或多個子節點,沒有子節點的節點稱爲葉節點 ; 具有子節點的節點被稱爲分支節點 節點實例只能添加到場景圖中一次。 場景圖的節點可以具有效果,不透明度,變換,事件處理程序,事件處理程序,應用程序特定狀態。

三、應用程序結構

一般來說,JavaFX應用程序將有三個主要組件,即舞臺,場景節點 ,如下圖所示。

stage有兩個參數確定它的位置,即寬度高度。它被分爲內容區和裝飾(標題欄和邊框)。階段(窗口)包含JavaFX應用程序的所有對象。它由javafx.stage包的Stage表示。初級階段由平臺本身創建。創建的stage對象作爲參數傳遞給Application類的start()方法。必須調用show()方法來顯示stage的內容。
四、開發HelloWorld
開發第一個javaFX例子--- HelloWorld。
package com.mf.helloworld;  
  
import javafx.application.Application;  
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) throws Exception {  
        Button btn = new Button();  
        btn.setText("Hello world!");  
          
          
        //爲按鈕添加事件  
        //匿名類方式添加事件  
//      btn.setOnAction(new EventHandler<ActionEvent>(){  
//          @Override  
//          public void handle(ActionEvent event) {  
//              System.out.println("hello world。。。");  
//          }  
//      });
                    
        //lambda表達式方式添加事件(java8可以使用這種語法)  
        btn.setOnAction((e) -> {  
            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);  
    }  
}  

1:JavaFX應用程序的主類擴展了javafx.application。應用程序類。start()方法是所有JavaFX應用程序的主入口點。
2:JavaFX應用程序定義了用戶界面的容器的一個舞臺,一個場景。JavaFX的Stage類是頂級JavaFX容器。JavaFX的Scene類是所有內容的容器。該例創造舞臺和場景,使場景以給定的像素大小中可見。
3:在JavaFX,場景的內容表示爲一個層次場景圖的節點。這個例子中,根節點是一個StackPane對象,這是一個可調整大小的佈局節點。這意味着,當用戶改變場(Scene)景大小或者舞臺(Stage)大小時,根節點也會跟着改變。
4:根節點包含一個子節點,一個按鈕控制文本,再加上一個事件處理程序在控制檯來輸出消息。
5:main方法有時候不是必須得,但在一些集成不齊全的時候,建議使用main方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章