ObservableList<String> src = FXCollections.observableArrayList();
ObservableList<Integer> other = FXCollections.observableArrayList();
//Create binding.
src.addAll("1", "2", "3");
System.out.println(other);//Should print [1, 2, 3].上面我对我想要做的事情有了一个想法。
当项目被添加和删除到src列表时,另一个列表将与之同步。src列表中的每个项目都与另一个列表中的项目具有等价物。当然,另一个列表包含来自src列表的“翻译”的值。
许多人推荐使用EasyBind,但我想先了解如何手动完成此操作。
发布于 2014-12-04 02:11:59
您可以使用侦听器来执行此操作,如下例所示:
ObservableList<String> src = FXCollections.observableArrayList();
ObservableList<Integer> other = FXCollections.observableArrayList();
// Create binding.
src.addListener(new ListChangeListener<String>() {
@Override
public void onChanged(ListChangeListener.Change<? extends String> change) {
while (change.next()) {
for (String changedString : change.getList()) {
other.add(Integer.valueOf(changedString));
}
}
}
});
src.addAll("1", "2", "3");
System.out.println(other); // Prints out [1, 2, 3].或者,您可以创建一个添加到列表的方法,如:
private void addToList(String s) {
src.add(s);
other.add(Integer.valueOf(s));
}快乐的编码,
Kalasch
https://stackoverflow.com/questions/25221978
复制相似问题