2024年11月12日 星期二

how to set up NetBeans environment for JavaFX applications

JavaFX 為 Java 繼 Awt, Swing 之後推出的第 3 代圖形介面 (GUI) 套件,多了場景建立器 (Scene Builder),排版配置檔 CSS 等支援能力。 利用 NetBeans 整合開發環境 (IDE) 撰寫 JavaFX 應用時,常遇到開發環境如何建立的問題。很容易會遇到如下錯誤:

   Error occurred during initialization of boot layer
   java.lang.module.FindException: Module javafx.controls not found
或
   java.lang.module.FindException: Module javafx.fxml not found

以下整理幾點 NetBeans 整合 JavaFX SDK,SceneBuilder 場景建立器,詳查 Build 腳本的方法,供除錯參考。

✅ NetBeans 整合 JavaFX SDK 方法
     Project Properties
       Libraries/
           Java Platform: JDK xx (Default)
           Compile/Compile-time Libraries:
               Classpath: JavaFX yy
           Run/Run-time Libraries:
               Modulepath: JavaFX yy

       Run/
           Configuration: <default config>
           VM Options:
               --add-modules javafx.controls,javafx.fxml,javafx.media
         
✅ NetBeans 整合 SceneBuilder 方法
     Tools/Options/Java/JavaFX
        JavaFX Scene Builder Integration
          Scene Builder Home: C:\Users\zz\AppData\Local\SceneBuilder
    
✅ NetBeans除錯想看Build執行腳本內容
     Tools/Options/Java/Ant:
        Ant Home: ...
        [v] Always Show Output

     Verbosity Level: Quiet/Normal/[Verbose]/Debug

    即可觀看Ant Target (build.xml) Output

註1: 建立 JavaFX 開發環境所須安裝套件如下
1.OpenJDK
  https://learn.microsoft.com/zh-tw/java/openjdk/download
    microsoft-jdk-21.0.5-windows-x64.msi (不含JavaFX)
    microsoft-jdk-21.0.5-macos-aarch64.pkg
  https://www.azul.com/downloads/?package=jdk-fx#zulu
    zulu21.38.21-ca-fx-jdk21.0.5-win_x64.msi (含JavaFX)

2.NetBeans
  https://netbeans.apache.org/download/index.html
    Apache-NetBeans-22-bin-windows-x64.exe
    Apache-NetBeans-22.pkg

3.SceneBuilder
  https://gluonhq.com/products/scene-builder/
    SceneBuilder-23.0.1.msi
    SceneBuilder-23.0.1-aarch64.dmg

4.JavaFX SDK
  https://gluonhq.com/products/javafx/
    openjfx-17.0.13_windows-x64_bin-sdk.zip
    openjfx-17.0.13_osx-aarch64_bin-sdk.zip
    
註2: JavaFX 和 JDK 的版本相容性,可參考如下說明:
      Version history of Java EE, JPA, Java DB, JavaFX, and JDK

	
YearJavaFX (LTS)Compatible JDK (LTS)Note
2018JavaFX 11 (LTS)J2SE 11, 17, 21JDK 8 不支援 JavaFX 11 模組功能
2021JavaFX 17 (LTS)J2SE 11, 17, 21
2023JavaFX 21 (LTS)J2SE 17, 21JDK 11 不支援 JavaFX 21 模組版本
註3: NetBeans 要看到 Scene Builder Home,須要安裝且啟動(Activate)如下任一插件 Tools/Plugins: JavaFX 2 或 JavaFX Implementation for Windows 安裝之後,針對專案 .fxml 按右鍵,才會看到如下選項 Open 連動開啟場景建立器畫面 Edit 開啟.fxml文字畫面 Make Controller 產生 .fxml 中 fx:controller 屬性指定的控制器.java類別檔 註4: NetBeans 要能看到 JavaFX yy 類別庫,須設定 Tools/Libraries/Libraries: Library Name: JavaFX yy Classpath/Add JAR/Folder...: ...\javafx-sdk-yy\lib\javafx-swt.jar ...\javafx-sdk-yy\lib\javafx.base.jar ...\javafx-sdk-yy\lib\javafx.controls.jar ...\javafx-sdk-yy\lib\javafx.fxml.jar ...\javafx-sdk-yy\lib\javafx.graphics.jar ...\javafx-sdk-yy\lib\javafx.media.jar ...\javafx-sdk-yy\lib\javafx.swing.jar ...\javafx-sdk-yy\lib\javafx.web.jar 註5: NetBeans 要能點選原始碼類別,按右鍵點選 Show Javadoc (Alt-F1) 看到類別 註解說明,須設定 Tools/Libraries/Libraries: Library Name: JavaFX yy Javadoc/Add URL...: https://docs.oracle.com/javafx/2/api/ 註6: NetBeans 要能點選原始碼類別,按右鍵點選 Navigate> Go to Source (Ctrl-Shift-B) 看到類別 原始碼,須設定 Tools/Libraries/Libraries: Library Name: JavaFX yy Sources/Add JAR/Folder...: ...\javafx-sdk-yy\src.zip

沒有留言: