Я просматривал "caspian.css", распространяемый Oracle в библиотеке времени исполнения JavaFX, и вижу, что они объявили некоторые значения цвета в качестве переменных. Например:
-fx-base: #d0d0d0; // Caspian.css, Line 47
... и затем они использовали его как значение некоторого другого свойства, например:
-fx-color: -fx-base; // Caspian.css, Line 96
Теперь, я хочу сделать объявление единицы измерения (-fx-radius-default: 10px
), а затем использовать его каждый раз, когда мне нужно установить радиус элемента управления, например:
-fx-border-radius: -fx-radius-default;
-fx-background-radius: -fx-radius-default;
Я до сих пор не увенчался успехом. Мой вопрос: возможно ли это вообще?
Изменить: добавление сведений об экспериментах
Подробнее
Вот мой файл Experiment.fxml, который я создал на JavaFX Scene Builder 1.1:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.net.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<TextArea layoutX="200.0" layoutY="119.0" prefWidth="200.0" styleClass="track" wrapText="true" />
</children>
<stylesheets>
<URL value="@css/Experiment.css" />
</stylesheets>
</AnchorPane>
И ниже css/Experiment.css
, который я использовал:
* {
-fx-radius-default: 10px;
}
.track {
-fx-border-radius: -fx-radius-default;
-fx-border-color: black;
}
К сожалению, это не сработает, вызывая сообщение об ошибке следующим образом:
Не удалось разрешить '-fx-radius-default' при разрешении поиска '-fx-border-radius' из правила '*.track' в файле stylesheet:/home/abdullah/codebase/src/package/css/Experiment.css
Если я использую простой синтаксис (-fx-border-radius: 10px
), с этим нет никаких проблем.
Что я здесь делаю неправильно?
Изменить: Заключение
Заключение: невозможно
Кажется, что то, что я ищу, невозможно в текущей версии JavaFX, так как "Справочное руководство по JavaFX CSS" только упоминает "искаженные цвета", а не общее понятие "переменные". Это была бы хорошая особенность, хотя... Просто сказал...