【问题标题】:Is there a way to manage repetitive image path in fxml?有没有办法管理 fxml 中的重复图像路径?
【发布时间】:2018-05-17 08:07:04
【问题描述】:

我想知道在我的 fxml 文件中管理路径的更好方法是什么? 例如,我有很多 fxml 文件:

有没有办法将/ressources/images/ 存储在某处并执行以下操作:

<Image url="@MY_DEFINE_PATH/success_128.png" />

MY_DEFINE_PATH 来自我项目中某处的全局文件?

【问题讨论】:

  • @ 位置是相对于 fxml 文件的。
  • 不确定但可能使用了一些 fx:define?
  • @Jean-BaptisteYunès 如何使用当前包之外的某个变量设置我的定义?这意味着在每个 fxml 文件中设置一个新的 fx:define ?
  • 您可以使用&lt;fx:define&gt;&lt;Settings fx:id="imgPath" fx:constant="IMG_PATH"/&gt;&lt;/fx:define&gt; 将常量“导入”到 FXML 中(在 FXML 文件中仅一次),然后执行 &lt;Image url="${imgPath+'success_128.png'}"/&gt;

标签: java url javafx path fxml


【解决方案1】:

您可以嵌入自己的 DTD 实体定义:

<?xml ... ?>
<!DOCTYPE GridPane [
    <!ENTITY imgPath "/ressources/images/">
]>
<GridPane>
...
<Image url="&imgPath;success_128.png" />

您也可以链接到外部 DTD,但是应该使用 XML 目录(本地缓存中的 DTD 映射到其 URL)来加速 XML 的处理。


使用外部 DTD 文件

<!DOCTYPE GridPane [
    <!ENTITY imgPath "/mypaths.dtd">
]>

mypaths.dtd:

<!ENTITY imgPath "/ressources/images/">

【讨论】:

  • 谢谢,但是如何从 fxml 文件之外的变量中获取“/ressources/images”?
  • 对于 static 配置,可以使用外部 DTD(-我扩展了答案)。 如果你的意思是 java: 要么使用 id 属性,要么使用你自己的命名空间添加一个自定义属性,然后通过图像在代码中迭代。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 2011-03-30
  • 1970-01-01
  • 2012-06-24
  • 2011-09-11
  • 1970-01-01
  • 2023-01-25
相关资源
最近更新 更多