我知道你可以像这样创建一个列表绑定:
ObservableList list1 = ...;
ObservableList list2 = ...;
Bindings.createContentBinding(list1, list2);但我想以一种特殊的方式将它们绑定在一起。假设我有这些类型:
Object obj = ...;
MyObject myObj = new MyObject(obj);和这些列表:
ObservableList<Object> objList = ...;
ObservableList<MyObject> myObjList = ...;每次在objList中添加新对象时,我都希望使用new MyObject(obj);将一个对象添加到myObjList中
您可以使用Bindings.create*Binding(...)绑定其他属性,但是列表似乎没有对应的属性。
对如何克服这个问题有什么想法吗?
发布于 2015-07-08 03:08:05
objList.addListener(e->{
if(e.wasAdded)
{
if(myObjectList.size>=e.getFrom())
myObjList.Add(new myObject(objList.get(objList.size-1)));
else{
myObjList.Add(e.getFrom(),new myObject(objList.get(e.getFrom()));
}
}
if(e.wasRemoved)
{
myObjectList.Remove(e.getFrom());
}
if(e.wasPermutated)
{
//handle this as well
}
});希望这能有所帮助:)
进行编辑以获取更改的对象,而不是假设添加了最后一个对象。还可以删除对象。可能有一些错误,因为我还没有编译和检查它。如果是的话,请随意编辑它。希望它至少足够好,以便对如何实现有一个大致的了解。
https://stackoverflow.com/questions/31276063
复制相似问题