Где это возможно, я рекомендую использовать таблицу стилей CSS.
Хотя нет эквивалента для всех свойств в css. Для них вы можете инициализировать карту FXMLLoader.namespace
перед вызовом load. Записи namespace
можно использовать так, как если бы они были определены с использованием ключа записи как fx:id
:
@Override
public void start(Stage primaryStage) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("test.fxml"));
// initialize namespace
Map<String, Object> namespace = loader.getNamespace();
namespace.put("a", 10d);
namespace.put("b", 20d);
Scene scene = new Scene(loader.load());
primaryStage.setScene(scene);
primaryStage.show();
}
test.fxml
<Pane prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Rectangle x="$a" y="10" width="20" height="20">
<fill>
<Color fx:constant="BLUE"/>
</fill>
</Rectangle>
<Rectangle x="$b" y="30" width="20" height="20">
<fill>
<Color fx:constant="RED"/>
</fill>
</Rectangle>
</children>
</Pane>