JavaFX - альтернатива JFoenix для JDK 13 - PullRequest
1 голос
/ 28 апреля 2020

К сожалению, у меня проблема в том, что JFoenix не работает с моей Java версией (13). После короткого исследования я обнаружил, что эта проблема, вероятно, существует некоторое время ( ссылка ).

Я не очень хорошо знаю Java, и я нашел введение в JFoenix очень хорошим через многочисленные учебники. Мне также нравится интеграция в Scene Builder. Поэтому я хотел спросить, знаете ли вы хорошую альтернативу JFoenix, которая также подходит для менее опытных Java разработчиков?

Если нет альтернативы, было бы проблематично c использовать Java 9 ? Я видел здесь, что кто-то использует JFoenix с JDK 13. Есть ли обходной путь?

1 Ответ

0 голосов
/ 28 апреля 2020

Я смог запустить JFoenix с java13, вам нужно немного разобраться. Еще один человек задал похожий вопрос только вчера, посмотрите это: { ссылка }

А также вы можете видеть в комментариях 2 человека дали вам правильное решение. Все, что я могу добавить, это дать вам пример для работы.

Если вы работаете напрямую, вам просто нужно добавить соответствующие флаги vm, такие как

--module-path=D:\[YOUR DIRECTOY\javafx-sdk-13\lib
--add-modules=javafx.base, javafx.controls, javafx.fxml, javafx.graphics, javafx.media, javafx.swing, javafx.web
--add-opens
javafx.base/com.sun.javafx.runtime=ALL-UNNAMED
--add-opens
javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED
--add-opens
javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
--add-opens
javafx.base/com.sun.javafx.binding=ALL-UNNAMED
--add-opens
javafx.base/com.sun.javafx.event=ALL-UNNAMED
--add-opens
javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED

См .: https://github.com/jfoenixadmin/JFoenix/issues/889#issuecomment -450744122

Если вы используете maven, вы можете сослаться на следующее:

<option>--add-opens</option>
<option>javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED</option>

В конфигурации POM для javafx-maven-plugin Для этого вам понадобится чтобы исправить пом, что-то вроде этого

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>nu.sharabheshwara.A456B123</groupId>
    <artifactId>nu-sharabheshwara-A456B123-MyFx</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>11</version>
        </dependency> 
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-media</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>com.jfoenix</groupId>
            <artifactId>jfoenix</artifactId>
            <version>9.0.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.4</version>
                <configuration>
                    <mainClass>application.Main</mainClass>
                    <options>
                        <option>--add-opens</option><option>javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED</option>
                        <option>--add-opens</option><option>javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED</option>
                        <option>--add-opens</option><option>javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED</option>
                        <option>--add-opens</option><option>javafx.base/com.sun.javafx.binding=ALL-UNNAMED</option>
                        <option>--add-opens</option><option>javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED</option>
                        <option>--add-opens</option><option>javafx.base/com.sun.javafx.event=ALL-UNNAMED</option>


                        <option>--add-exports</option><option>javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED</option>
                        <option>--add-exports</option><option>javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED</option>
                        <option>--add-exports</option><option>javafx.base/com.sun.javafx.binding=ALL-UNNAMED</option>
                        <option>--add-exports</option><option>javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED</option>
                        <option>--add-exports</option><option>javafx.base/com.sun.javafx.event=ALL-UNNAMED</option>
                    </options>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <compilerArgs>
                        <arg>--add-opens</arg><arg>javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Чтобы запустить, используйте команду mvn javafx:run или mvn clean javafx:run. Это будет использовать javafx-maven-client вместо apache.

Если это не поможет, вы можете просто проверить этот пример проекта maven на github, где вы можете поместить свой существующий код jfoenix и заставить его работать

https://github.com/shashaanktulsyan/java-javafx-maven-learning-tips/tree/master/nu-sharabheshwara-jfoenix_maven_javafx11_fix_demo

Это наверняка на 100% решит вашу проблему.

...