我一直在嘗試在 IntelliJ 中使用
另外,我requires org.glavo.materialfx.adapter;在 module-info.java 中添加了:
module org.example {
requires javafx.controls;
requires javafx.fxml;
requires com.jfoenix;
requires org.glavo.materialfx.adapter;
opens org.example to javafx.fxml;
exports org.example;
}
有誰知道我如何使用這個庫,因為作者并沒有很好地解釋如何這樣做。我想提一下,它在 Scene Builder 的最新版本中完美運行,所以我只是想知道為什么它在 IntelliJ 中不這樣做。
uj5u.com熱心網友回復:
使用 Maven(或 Gradle)進行依賴管理
您正在使用 Maven(至少這是在 Idea 中顯示的螢屏截圖,盡管它可能是 Gradle 使用 Maven 存盤庫)。
pom.xml您應該在您的(或)中將依賴項定義為 maven 依賴項,build.gradle然后將構建檔案重新匯入 Idea。
您不應該在 Idea 中手動設定庫依賴項。
Idea 和 Maven 會識別出您有一個模塊化專案,并且當您在 Maven 中定義了依賴項時,它們會自動將新的依賴模塊放在模塊路徑上進行編譯和執行。
可以通過搜索 maven 存盤庫找到 maven 工件:
- https://search.maven.org/artifact/io.github.palexdev/materialfx/11.13.5/jar
依賴資訊是:
<dependency>
<groupId>io.github.palexdev</groupId>
<artifactId>materialfx</artifactId>
<version>11.13.5</version>
</dependency>
MaterialsFX 的模塊資訊需要VirtualizedFX. VirtualizedFX 模塊也需要在您的模塊路徑上。MaterialsFX 的 pom.xml 檔案包含對io.github.palexdev:virtualizedfx:11.2.6. 因此,通過 Mavan 和 Idea 與 Java 平臺模塊系統的內置集成,您的構建和運行時將可以自動訪問依賴模塊。
需要正確的模塊名稱
庫的模塊名稱不是org.glavo.materialfx.adapter,而是MaterialFX,因此您應該使用:
requires MaterialsFX;
不是:
requires org.glavo.materialfx.adapter;
我建議您花一些時間學習構建工具和 Java 平臺模塊系統的教程。
示例應用
示例是通過運行 idea new JavaFX project wizard創建的,然后修改生成的專案。
pom.xml
除了對 MaterialFX 庫有依賴之外,還需要對 javafx-controls 和 javafx-fxml 有依賴。
MaterialFX 在構建和運行時都需要這兩種傳遞方式(即使您沒有在應用程式中使用 fxml)。
MaterialFX pom.xml 沒有明確的 JavaFX 依賴項配置,因此您需要在專案 pom.xml 中定義這些依賴項(無論如何您都希望這樣做以確保您的應用程式使用特定的 JavaFX 版本) .
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>material</artifactId>
<version>1.0-SNAPSHOT</version>
<name>material</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>18</version>
</dependency>
<dependency>
<groupId>io.github.palexdev</groupId>
<artifactId>materialfx</artifactId>
<version>11.13.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.9.0</version>
<configuration>
<source>18</source>
<target>18</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
模塊資訊.java
module com.example.material {
requires MaterialFX;
exports com.example.material;
}
MaterialApplication.java
package com.example.material;
import io.github.palexdev.materialfx.controls.MFXButton;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MaterialApplication extends Application {
@Override
public void start(Stage stage) {
stage.setScene(new Scene(new MFXButton("mfx")));
stage.show();
}
public static void main(String[] args) {
launch();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462653.html
