Ram*_*ses 4 javafx removeall observablelist
我在一个observable列表中有几个复制元素,我在TableView中用于复制/粘贴操作.表的名称是cpTable(c opy和p aste T able),用于存储复制的元素和粘贴存储在表中的元素.每次粘贴操作后,我想清除cpTable的内容,然后用Ctrl + C复制其他选定的项目.但我总是得到错误:
JavaFX应用程序线程"java.lang.UnsupportedOperationException:不支持.
在com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.remove(ReadOnlyUnbackedObservableList.java:246)
这是我的伪代码:
if (cpTable !=null) {
    //first, get all copied items for removing all elements 
    ObservableList<String> copiedItems = cpTable.getItems();                                 
    int size = copiedItems.size();
    // remove all elements 
    for(int i=0;i<size;i++) {
        copiedItems.remove(i);
    }
    cpTable.setItems(copiedItems); //clear cpTable by setting an empty list
}
这是一种复制所选项目内容并将其放入cpTable的方法
public TableView<String> copySelectionToClipboard(TableView<String> table) {            
    ObservableList<String> data =     table.getSelectionModel().getSelectedItems();             
    TableView<String> tmp = new TableView<>();
    tmp.setItems(data);
    return tmp;
}
按下Ctrl + C时,以下行将所有复制的项目放在cpTable中:
cpTable = copySelectionToClipboard( (TableView<String>) keyEvent.getSource());
如上所述,我希望在粘贴表格中的项目后立即清除所有cpTable内容.
| 归档时间: | 
 | 
| 查看次数: | 10648 次 | 
| 最近记录: |