这在某种程度上是我之前的 question 的后续。 。不知何故,我从 here 得到了我的问题的解决方案,但由于某些原因它从未真正回答我的问题,这导致我提出这个问题。
原因如下:
- 我发现,通过使用
FXMLLoader.namespace
,映射的值只能由正在加载 FXMLLoader 的布局(FXML 文件)访问。但这并不能满足为其他 FXML 文件提供可重用常量的愿望。 - 此外,由于这些常量是在 Java 代码中定义的,因此在使用时会被 IDE 视为错误,因为它们不是直接在 FXML 文件中定义的,这样就很难追踪其他异常错误。
现在的问题是,如何使常量可重用于 FXML 布局?
就像在 Android 中一样,Color resource例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#FFFFFF</color>
</resources>
可以应用于 XML 布局的属性:
android:textColor="@color/white"
JavaFX还有其他可能的方法吗?感谢大家的回答。
最佳答案
最接近的是通过样式表的 CSS。
常量.css
* {
-my-color: #FFFFFF;
-my-width: 300;
-my-height: 400;
}
然后你可以通过 CSS 在任何地方使用它。坏消息是您必须在所有需要应用它的地方添加 Constants.css
。
在代码中:
pane.setStyle("-fx-background-color: -my-color;");
在 FXML 中:
<Pane style="-fx-background-color: -my-color;" .... />
在另一个特定的 CSS 文件中:
.my-pane {
-fx-background-color: -my-color;
}
关于java - FXML 布局的可重用常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51201663/