JavaFX:为节点创建自定义数据属性

标签 java javafx fxml

我目前需要可以随时获取的自定义属性。有没有办法为节点创建自定义数据属性,然后在 javafx 中获取这些值?

假设我有以下按钮。

<Button text="Im a button" fooBar="I hold some value" />

类似于:https://developer.mozilla.org/de/docs/Web/Guide/HTML/Using_data_attributes

现在在 HTML 中,我可以简单地执行以下操作:

<div id="example" data-foobar="I hold some value"></div>

然后我可以很容易地得到这样的数据:

document.getElementById("example").dataset.foobar;

编辑:我需要一个节点的多个数据属性,因为一个节点可以保存各种信息。

最佳答案

数据可以存储在the properties ObservableMap of a Node

Node node = ...
node.getProperties().put("foo", "bar");
...
Object foo = node.getProperties().get("foo");

但是请注意,某些布局属性也使用此映射,因此不应将类似于 javafx 属性/“静态”属性的属性名称用作键。为确保您可以创建一个自定义键类,如果将另一种类型的对象作为参数传递给 equals,则该类不会返回 true

关于JavaFX:为节点创建自定义数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827416/

相关文章:

java - 在构造函数中保存到数据库

java - Java中如何以不区分大小写的方式检查一个字符串是否包含另一个字符串?

java - 如何在使用 bean 的 Camel 单元测试中注册 bean?

java - 使用 JavaFX 的动画看起来不稳定

java - 我无法在 Eclipse 中配置 JavaFx SDK 路径

JavaFX:如何使 VBox 及其内容随着窗口高度无限扩展,就像宽度一样?

java - 在 oracle Spring/JPA 中对分组行本身进行排序

java - Gradle 无法使用 useJUnitPlatform() 运行 JUnit 测试

javafx-2 - JavaFX : Adding a new node to Scene in java code when Scene is initially loaded from FXML

JavaFx,@FXML 的问题