博客 / 詳情

返回

面向控制枱編程?Java的GUI開發

記得之前剛開始學習Java,按部就班去閲讀《Java核心技術》這本書的時候,總是聽別人提起,java swing那一章不用看了。然後直到對着控制枱編程了半年,回來撿起了Swing圖形界面,跟着網上搞了坦克大戰的遊戲,總覺得外觀有些過時,並且與現代化的用户界面相比可能缺乏吸引力。隨着 JavaFX 的興起和發展,一些Java開發人員開始轉向使用 JavaFX 來構建 GUI 應用程序。JavaFX提供了現代化的 GUI 開發體驗、靈活的界面佈局和樣式定義、跨平台性以及與其他 Java 技術的良好集成,這也是我後來又去學習JavaFX的原因。

什麼是JavaFX

JavaFX 是 Java 編程語言的一個跨平台圖形用户界面(GUI)框架,用於創建豐富、交互式和現代化的用户界面應用程序。它提供了豐富的功能和工具,使開發人員能夠構建具有吸引力和高度可定製的用户界面。JavaFX 提供了一種現代化的方法來設計和開發 GUI 應用程序,支持諸如動畫、多媒體、3D 渲染等現代 GUI 元素,同時保持了 Java 平台的跨平台性。

JavaFX的優勢:

  1. 現代化的 GUI 開發:JavaFX 提供了豐富的功能,使得開發人員可以創建具有現代化外觀和交互體驗的用户界面。它支持動畫、過渡效果、多媒體和3D 渲染等特性,使得應用程序能夠提供更加吸引人的用户體驗。
  2. 跨平台性:JavaFX 應用程序可以在多個平台上運行,包括 Windows、Mac 和 Linux。這意味着開發人員可以編寫一次代碼,並在多個平台上部署應用程序,減少了開發和維護的成本。
  3. CSS 樣式:JavaFX 支持使用 CSS 來定義 GUI 元素的樣式和外觀,使得界面的設計更加靈活。開發人員可以使用 CSS 對界面進行樣式化和主題化,從而實現更好的視覺效果。
  4. FXML 佈局:JavaFX 提供了 FXML,一種用於聲明式地描述界面佈局的 XML 格式。使用 FXML 可以將界面的佈局與業務邏輯分離,使得代碼更易於維護和理解。
  5. 集成性:JavaFX 是 Java 標準庫的一部分,與其他 Java 技術(如 Java EE、Spring 等)集成得非常好。這意味着開發人員可以方便地在 JavaFX 應用程序中使用 Java 的強大功能和第三方庫。
  6. 未來發展潛力:儘管 JavaFX 相對較新,但它正在迅速發展,並且由於其現代化的特性和跨平台的能力,被廣泛認為是 Java GUI 開發的未來趨勢之一。

如何準備學習JavaFX

網上的教程和學習指南很容易找到,我就不在這裏班門弄斧。這裏僅僅講一下JDK8之後如何在IDEA中運行Javafx。

其實在IDEA中,創建項目時會有一個選項,通過該選項會直接創建一個hello world的demo,可以直接運行。
在這裏插入圖片描述

但是我這裏僅僅向大家介紹如何從一個空項目中構建JavaFX的程序。

新建空項目

這裏隨便取個名字。
在這裏插入圖片描述

貼上代碼

簡單點,直接在src下面新建一個class。 就叫Main.java。貼上代碼。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 創建一個標籤
        Label helloLabel = new Label("Hello World!");

        // 創建一個堆棧面板並將標籤添加到其中
        StackPane root = new StackPane();
        root.getChildren().add(helloLabel);

        // 創建一個場景並將堆棧面板添加到場景中
        Scene scene = new Scene(root, 300, 200);

        // 設置舞台(窗口)的標題和場景
        primaryStage.setTitle("Hello World Example");
        primaryStage.setScene(scene);

        // 顯示舞台(窗口)
        primaryStage.show();
    }

    public static void main(String[] args) {
        // 啓動 JavaFX 應用程序
        launch(args);
    }
}

修復

不出意外,應該是一片紅,因為我們需要手動的引入JavaFx相關的包。
到這裏下載 https://openjfx.io/

我的路徑是

在這裏插入圖片描述

引入相關包
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

之後確定導入,紅色消失讓我們再次運行。

修改JVM配置

不出意外地出了意外,錯誤原因
在這裏插入圖片描述

有了問題咱們就解決,打開

在這裏插入圖片描述
在這裏插入圖片描述

編輯虛擬機參數

--module-path=你的javafx包的路徑\lib
--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics

在這裏插入圖片描述

ok,運行
在這裏插入圖片描述

大功告成

總結

自此可以快樂地寫UI了,再也不是面向黑漆漆的console編程。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.