JavaFX:为节点创建自定义数据属性
JavaFX: Create custom data attributes for nodes
我目前需要可以随时获取的自定义属性。有没有办法为节点创建自定义数据属性,然后在 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;
编辑:我需要一个节点的多于 1 个数据属性,因为一个节点可以保存各种信息。
要解决您的问题,您应该使用 userData
它可以是您需要的任何对象。
node.setUserData("Hello world");
node2.setUserData(123);
等等
如果您需要设置多个值,您可以将您的值保存在数组、列表、json 等中
ArrayList<String> vals = new ArrayList();
vals.add("Hello");
vals.add("World");
node3.setUserData(vals);
//some code
ArrayList<String> result = (ArrayList) node3.getUserData();
数据可以存储在the properties
ObservableMap
of a Node
Node node = ...
node.getProperties().put("foo", "bar");
...
Object foo = node.getProperties().get("foo");
但是请注意,某些布局属性也使用此映射,因此不应将类似于 javafx 属性的 属性 名称/"static" 属性用作键。如果将另一种类型的对象作为参数传递给 equals
.
,则可以确保您可以创建一个不 return true
的自定义键 class
我目前需要可以随时获取的自定义属性。有没有办法为节点创建自定义数据属性,然后在 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;
编辑:我需要一个节点的多于 1 个数据属性,因为一个节点可以保存各种信息。
要解决您的问题,您应该使用 userData
它可以是您需要的任何对象。
node.setUserData("Hello world");
node2.setUserData(123);
等等
如果您需要设置多个值,您可以将您的值保存在数组、列表、json 等中
ArrayList<String> vals = new ArrayList();
vals.add("Hello");
vals.add("World");
node3.setUserData(vals);
//some code
ArrayList<String> result = (ArrayList) node3.getUserData();
数据可以存储在the properties
ObservableMap
of a Node
Node node = ...
node.getProperties().put("foo", "bar");
...
Object foo = node.getProperties().get("foo");
但是请注意,某些布局属性也使用此映射,因此不应将类似于 javafx 属性的 属性 名称/"static" 属性用作键。如果将另一种类型的对象作为参数传递给 equals
.
true
的自定义键 class