Аннотация @FXML и класс FXMLLoader не разрешены для типа в Java 11 и JavaFX 11 - PullRequest
0 голосов
/ 02 октября 2018

Раньше мой проект был на Java 8, но теперь я использую Java 11 вместе с JavaFX 11, и теперь JavaFX отделен от Java начиная с Java 11. Я не загружал JavaFX SDK, но добавил ниже зависимость в pom.xml для получения необходимых модулей и jar-файлов, которые раньше были частью самой Java в более ранних версиях.

       <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>

Но я получаю ошибку компиляции can not be resolved to a type для @FXML аннотации и FXMLLoader класса.

Нужно ли добавлять другие / дополнительные зависимости для решения этой проблемы?

1 Ответ

0 голосов
/ 02 октября 2018

FXML (@FXML аннотация, FXMLLoader ...) были перемещены в модуль javafx.fxml с выпуском Java 9.

До JavaFX 11, когда вы вызывали что-то связанное с JavaFX, у вас были всеjavafx-модули, доступные в SDK.

Но теперь вам нужно включить те, которые вам нужны:

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11</version>
</dependency>
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>11</version>
</dependency>

Обратите внимание, что javafx.controls зависит от javafx.graphics и java.base, поэтомувам не нужно включать их.И javafx.fxml напрямую зависит от javafx.base.

...