Мне нужно добавить эффект CSS к «сцене» определенного моего приложения JavaFX, а не к конкретному компоненту сцены или сцены. Я пытался использовать:
.main-scene{...}
а также,
.main-class{...}
Но ни то, ни другое не сработало.
Мне нужно добавить эффект CSS к «сцене» определенного моего приложения JavaFX, а не к конкретному компоненту сцены или сцены. Я пытался использовать:
.main-scene{...}
а также,
.main-class{...}
Но ни то, ни другое не сработало.
CSS работает с узлами, а не со сценами.
Существует класс css .root
, который применяется к корневому узлу всех сцен в вашем приложении. Для максимальной гибкости корнем сцены должен быть Region, так как регионы имеют более широкие возможности стиля в JavaFX.
Так, например, если вы настроите свою основную сцену следующим образом.
Pane pane = new Pane();
pane.setId("my-pane");
stage.setScene(new Scene(pane, 300, 200));
Затем вы можете стилизовать корневую панель (всех сцен), используя:
.root {
-fx-background-color: yellow;
}
Или просто конкретную корневую панель в образце, используя:
#my-pane {
-fx-background-color: firebrick;
}
Вы можете напрямую добавить нужный стиль в класс стилей .root
.
Из документов
Класс стиля .root применяется к корневому узлу экземпляра сцены. Поскольку все узлы в графе сцены являются потомками корневого узла, стили в классе стилей .root могут применяться к любому узлу.
Стили, написанные внутри этого класса, не нужно применять/добавлять извне. Просто добавьте свой стиль в .root
, и он будет автоматически подхвачен javafx.
.root{
//Your styles
}
Хотя вам нужно добавить файл css извне!
scene.getStylesheets().add(
getClass().getResource("myCss.css").toExternalForm()
);