java - FXML 布局的可重用常量?

标签 java javafx fxml

这在某种程度上是我之前的 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/

相关文章:

运行 jdk1.8.0 的 ARM 上的 JavaFX

JavaFX 错误日志 - 调用目标异常

java - Java 中的构造函数本质上是静态的还是非静态的?

java - 将 JavaFx 添加到小程序

combobox - JavaFX:捕获 "Enter"键按下

java - 如何使用文本字段相应地调整矩形的大小?

java - 如何将 FXML 转换为 JAVA

java - 在 Map Reduce 中计算数据集的线性回归

java - Jackson - 如何编写自定义解串器

java - 为什么当执行器的线程出现异常时,它并没有耗尽可用线程?