Oracle が JavaFX ランタイム ライブラリで配布している「caspian.css」を調べたところ、いくつかの色の値が変数として宣言されていることがわかりました。例えば:
-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;
私はこれまで失敗してきました。私の質問は次のとおりです。これはまったく可能ですか?
編集:実験の詳細を追加する
詳細
JavaFX Scene Builder 1.1 で作成した Experiment.fxml ファイルを次に示します。
<?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;
}
残念ながら、これは機能せず、次のようなエラー メッセージが表示されます。
スタイルシート ファイルのルール '*.track' から '-fx-border-radius' のルックアップを解決しているときに '-fx-radius-default' を解決できませんでした: /home/abdullah/codebase/src/package/css/Experiment.css
単純な構文 ( -fx-border-radius: 10px
) を使用する場合、問題はありません。
ここで何が間違っていますか?
編集:結論
結論:ありえない
「 JavaFX CSSリファレンスガイド」では「ルックアップされた色」のみが言及されており、「変数」の一般的な概念は言及されていないため、私が探しているものはJavaFXの現在のバージョンでは不可能なようです。いい機能だろうけど…