JAVAFX

weixin_33806914發表於2018-12-10

一,概念

JavaFX最重要的特性就是屬性繫結,事件也推薦這樣做,和swing、Android常用的set***的方式加事件監聽有區別。事件簡單來說就是給介面上的Node新增一些行為,使之具備相應的功能。
一提到Java的圖形介面庫,我們通常聽到的都是Swing,或者更老一點的AWT,包括很多書上面介紹的也都是這兩種。很多學校、培訓班教學的也是這兩種技術。但是其實這兩種技術都已經過時很長時間了。Swing雖然學起來也不算很難,但是用它來寫介面其實也很不好寫。因為它的介面和程式碼沒有做到分離,所以在編寫的時候,程式碼中肯定充斥著大量座標,修改極其不易。這方面做的比較好的就是微軟的WPF,只能說誰用誰知道。
當然,雖然編寫客戶端圖形程式是Java的弱項,但是Java並沒有放棄這方面的努力。今天介紹的JavaFX就是Java在編寫圖形介面程式的最新技術。如果你準備使用Java編寫圖形介面程式,又沒有歷史包袱,那麼強烈推薦使用JavaFX

二,分類

前臺事件:和使用者UI直接相關的,滑鼠、鍵盤、列表、文字框等
後臺事件:系統中斷、硬體軟體的錯誤、超時、失效等

三,常見事件

滑鼠事件:點選文字、圖片滑鼠進入效果等
鍵盤事件:功能鍵、快捷鍵、遊戲
視窗事件:視窗大小改變、視窗開啟、關閉等觸發
焦點事件:文字框、密碼框等獲得焦點、失去焦點
列表選項事件:單選、複選、下拉、ListView、TableView、TreeView等選項發生改變,獲得最新選取的值
拖拽事件:拖動視窗、拖動目標元件

四、要素

以滑鼠點選某個文字元件nameLabel為例:

target:目標—文字元件nameLabel
source:事件源—Mouse
type:事件型別—滑鼠單擊,MouseClicke
avaFx平臺是一個富客戶端平臺解決方案,它能夠使用應用程式開發人員輕鬆的建立跨平臺的富客戶端應用程式。它構建在Java技術的基礎之上,JavaFX平臺提供了一組豐富的圖形和媒體API與高效能硬體加速圖形和媒體引擎,簡化開發資料驅動的企業客戶端應用程式。

五,JavaFX有以下優點:

因為JavaFX平臺是用Java編寫的,Java開發人員可以利用現有的技能和工具來開發JavaFX應用程式。
因為java是廣泛使用的,所以很容易找到能輕易將JavaFX應用變成產品的開發人員。
因為跟Java技術使用的是相同的服務端和客戶端的平臺,所以降低了應用企業解決方案所帶來的風險。
因為上述的優點所以開發成本也會降低。
JavaFX提供給開發者一個建立跨平臺的企業級業務應用的開發框架和執行環境。

1,建立一個類
建立一個類,繼承 javafx.application 包中的 Application 類,並且實現它的 start() 方法。
2,嵌入文字
在 JavaFX 場景中嵌入文字。
3,設定字型
4,設定文字位置
通過各自的寫訪問器 setX() 和 setY() 方法,設定 X,Y 座標來指定文字在 X-Y 座標中的位置。
5,建立一個組物件
在 start() 方法中,通過例項化 javafx.scene 包中的 Group 類建立一個組物件。將前面建立的文字(節點)物件作為引數傳入 Group 類的構造方法中,以便將其新增到組中。
6,建立一個場景物件
通過例項化 javafx.scene 包中的的 Scene 類建立一個場景物件。給這個類傳入前面建立的組物件 (root)。除了根物件,也可以在它的後面,傳入兩個 double 引數來設定場景的寬高。
7,設定 stage 的標題
可以通過 Stage 類的 setTitle() 方法設定 stage 的標題。primaryStage 是作為引數傳遞給應用類 start 方法的 Stage 物件。使用 primaryStage 物件設定場景的標題為 "Sample Application",如下所示。
8,將場景新增到 Stage 中
可以通過 Stage 類的 setScene() 方法將場景物件新增到 stage 中。使用如下所示的方法,新增前面準備的場景物件。
9,展示 Stage 內容
像下面這樣使用 Stage 類的 show() 方法顯示場景的內容。
10,啟動應用
在 main() 方法中呼叫 Application 類的靜態方法 launch() 啟動 JavaFX 應用。


import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class DisplayingText extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        //建立Text物件
        Text text = new Text();

        //將字型設定為文字
        text.setFont(new Font(45));

        //設定文字的位置
        text.setX(50);
        text.setY(150);

        //設定要新增的文字
        text.setText("Welcome to nanjing!");

        //建立組物件
        Group root = new Group();

        //檢索可觀察列表物件
         ObservableList list = root.getChildren();

        //將文字物件設定為組物件的節點
        list.add(text);

        //建立場景物件
        Scene scene = new Scene(root, 600, 300);

        //設定舞臺的標題
        stage.setTitle("JAVAFX");

        //將場景新增到舞臺
        stage.setScene(scene);

        //顯示舞臺的內容
        stage.show();
    }
    public static void main(String args[]){
        launch(args);
    }
}


14488067-0f73f2b619dbdc2f.png
筆記.png

相關文章