JavaFX程序的基本結構


JavaFX程序的基本結構

JavaFX作為Java新一代的GUI編程框架,受到Java程序員的廣泛歡迎。比起上一代的Swing技術,JavaFX功能更強大,編程更簡單,構造界面的控件種類更豐富,並且有功能強大的界面設計工具的支持。

下面就來簡單地介紹一下JavaFX程序的基本結構,並通過一個具體的例子來做說明。

首先,介紹一下JavaFX程序的基本構成。JavaFX程序作為一種特殊類型的應用程序,它的構成也是特殊的。JavaFX為了方便程序員編寫JavaFX程序,特別定義好了一個特殊的類Application,即javafx.application.Application,JavaFX程序中的主類必須從這個類派生出來,並且必須覆蓋start方法,這個方法是JavaFX程序的啟動方法,由Java虛擬機自動調用。代碼如下:

public class MyJavaFX extends Application {

  @Override // Override the start method in the Application class

  public void start(Stage primaryStage) {

    // code here

  }

}

start方法的主要作用就是完成程序界面的具體構造,它接受的參數primaryStage是由Java虛擬機自動創建的一個特殊對象,稱為主舞台,相當於程序的主窗口。我們需要在這個主舞台上完成界面的構造。首先需要創建一個場景Scene對象,然后將場景對象添加到主舞台上,然后再在場景上擺放各種節點Node來構造界面。它們的關系如下圖所示:

 

 

 

圖中的按鈕Button就是控件,控件也是節點的一種,具體的界面主要就是由各種控件來構成,不同的控件有着不同的外觀和功能。

為了更好地構造不同的界面,可以借助各種面板來進行布局。JavaFX提供了多種面板供我們使用,方便我們進行不同風格的布局。

下面的例子中使用了HBox 面板,HBox的布局策略是將所有節點擺放在同一排。首先創建了兩個Button,代碼如下:

Button btOK = new Button("OK");

    btOK.setPrefSize(100, 20);//將Button的寬度和高度設置為100和20

   

    Button btCancel = new Button("Cancel");

    btCancel.setPrefSize(100, 20); //將Button的寬度和高度設置為100和20

 

然后創建HBox對象,代碼如下:

HBox hbox = new HBox();   //設置控件與 HBox 邊緣之間的距離

    hbox.setPadding(new Insets(15, 12, 15, 12));

    hbox.setSpacing(10);   // 設置節點之間的間隔距離

    hbox.setStyle("-fx-background-color: #336699;");//設置背景色

 

然后將兩個Button添加到HBox中,代碼如下:

hbox.getChildren().addAll(btOK, btCancel);

 

然后創建場景Scene對象,將場景對象添加到主舞台上,代碼如下:

Scene scene = new Scene(hbox, 200, 250);

    primaryStage.setScene(scene);

 

最后,顯示主舞台,代碼如下:

primaryStage.show();

 

完整的代碼如下:

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.stage.Stage;

import javafx.scene.layout.HBox;

import javafx.geometry.Insets;

 

public class MyJavaFX extends Application {

  @Override // Override the start method in the Application class

  public void start(Stage primaryStage) {

    HBox hbox = new HBox();  

    hbox.setPadding(new Insets(15, 12, 15, 12));

    hbox.setSpacing(10); 

    hbox.setStyle("-fx-background-color: #336699;");

 

    Button btOK = new Button("OK");

    btOK.setPrefSize(100, 20);

   

    Button btCancel = new Button("Cancel");

    btCancel.setPrefSize(100, 20);

   

    hbox.getChildren().addAll(btOK, btCancel);

   

    Scene scene = new Scene(hbox, 200, 250);

    primaryStage.setTitle("MyJavaFX");

    primaryStage.setScene(scene);

    primaryStage.show();

  }

 

  /**

   * The main method is only needed for the IDE with limited

   * JavaFX support. Not needed for running from the command line.

   */

  public static void main(String[] args) {

    launch(args);

  }

}

注意,如果要編譯和運行JavaFX程序,必須安裝JDK 8以上的版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM