Таблицы стилей в FXML (JDK 9)

Не работает после обновления до JDK 9.

<stylesheets>
  <URL value="@MainView.css" />
</stylesheets>

Вызвано: java.lang.IllegalArgumentException: Невозможно привести @MainView.css к классу java.net.URL.

Вы можете мне помочь?

1 ответ

Как было сказано выше, есть два способа подключить css. Чтобы это сработало, создайте в корневом каталоге папку "resources", такую ​​как "src", и поместите туда файл. Тогда вы можете попробовать:

<stylesheets>
    <URL value="@/resources/MainView.css" />
</stylesheets>

или

stylesheets="@/resources/MainView.css"

Он работает для меня как атрибут на корневом уровне, вот мой Index.fxml в качестве примера:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.control.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" styleClass="app"   stylesheets="@Index.css" 
    fx:controller="fr.pdem.view.IndexController" fx:id="root">
    <!-- all the nodes-->

</AnchorPane>

Моя стратегия состоит в том, чтобы использовать один файл CSS для FXML, поэтому мне не нужен список файлов.

Дополнительное примечание: Не уверен, что это хорошая практика - использовать шаблоны при импорте, но только для примера, это работает.

Другие вопросы по тегам