Если вы хотите применить свою собственную таблицу стилей CSS к приложению Gluon Mobile, вы можете избавиться от CSS Glisten, поставляемого с библиотекой.
Это действительно экстремально, конечно, поскольку оно удалит стиль MaterialDesign, который он применяет по умолчанию ко всем встроенным элементам управления JavaFX и к пользовательским элементам управления в библиотеке.
Если вытем не менее, в вашем классе MobileApplication
замените add
на setAll
:
@Override
public void postInit(Scene scene) {
Swatch.BLUE.assignTo(scene);
scene.getStylesheets().setAll(
getClass().getResource("style.css").toExternalForm());
}
После того, как вы поймете, что не хотите этого делать, следующий вариант - проверить CSSдля компонента, который вы хотите стилизовать.
Примечание: вместо этого:
listView.getStylesheets().add(ControlCSS.CSS);
tabs.getStylesheets().add(ControlCSS.CSS);
вы можете просто применить один раз таблицы стилей ко всему узлу представления:
getStylesheets().add(ControlCSS.CSS);
ListView
Вы хотите применить пользовательский фон к каждой ячейке:
.list-cell {
-fx-background-color: red;
}
Опубликованное изображение показывает, что оно применяется только ко всем другим строкам.Объяснение этому - псевдокласс odd
.Glisten.css применяет некоторые стили к нему, поэтому вам также необходимо переопределить его:
.list-cell,
.list-cell:odd {
-fx-background-color: red;
}
То же самое можно применить к другим свойствам (цвет или ширина рамки, отступы, цвет текста).
Вкладки
Glisten применяет рекомендации по проектированию материалов для вкладок , но вы, конечно, можете изменить это.
Заменить:
.tab-pane,
.tab-pane .tab:selected {
-fx-background-color: blue;
}
с помощью:
.tab-pane > .tab-header-area > .headers-region > .tab,
.tab-pane > .tab-header-area > .headers-region > .tab:selected {
-fx-background-color: blue;
}
для установки цвета фона.
Возможно, вы захотите восстановить границы и вставки, поэтому вам нужно будет посмотреть, как это было определено в Модене.css.
Замените также это:
.tab {
-fx-background-insets: 0 1 0 1,0,0;
}
следующим:
.tab-pane > .tab-header-area > .headers-region > .tab,
.tab-pane > .tab-header-area > .headers-region > .tab:selected {
-fx-background-color: blue;
-fx-background-insets: 0 1 1 0;
-fx-background-radius: 3 3 0 0;
-fx-padding: 0.083333em 0.5em 0.0769em 0.5em; /* 1 6 0.99 6 */
}
Последний отсутствующий стиль - это текстовая заливка метки вкладки.Если вы применили Swatch, текстовая заливка будет взята из -primary-swatch-500
.Но вы можете переопределить его:
.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label,
.tab-pane > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label {
-fx-text-fill: gold;
}
В заключение: для всего, что вы хотите переопределить в glisten css, просто посмотрите определение по умолчанию Модены и добавьте его в свой стиль css.