我想從我從FileChooser獲得的不可修改列表中刪除元素。但是爲了這樣做,它拋出了一個UnsupportedOperationException。任何人都可以建議我以任何方式刪除/刪除列表中的內容?有沒有辦法修改一個不可修改的集合?
回答
查看FXCollections靜態類。一些有用的方法是:
因爲你不能修改該列表(這是顯而易見的名字),你可以獲取列表的副本並修改如你所願
注意這些方法創建'ObservableList's,它可能比需要的多(例如,'FileChooser.showOpenMultipleDialog()'返回一個普通的'List')。如果你只需要一個常規的'List',你應該使用'java.util' API,而不是'javafx.collections' API。 –
@james_D你說得對,我正在使用showOpenMultipleDialog(),它返回java.util.List
我找到了一個解決方案。雖然這可能不是正確的方式,但它有效。我所做的是;我使用增強for循環將不可修改列表的內容複製到ArrayList中。然後在ArrayList上應用remove方法。但是,如果你有一個更好的解決方案,請發佈。
爲什麼不直接使用[構造函數](http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#ArrayList-java.util.Collection-)來進行復制您? –
@James_D感謝這個解決方案。我用這個代替了我的代碼,它運行良好 –
- 1. 收集修改例外集合時沒有被修改
- 2. 有沒有辦法修改FILTER_SANITIZE_STRING
- 3. 有沒有辦法修改pydevd_file_utils.PATHS_FROM_ECLIPSE_TO_PYTHON值而不必修改該文件?
- 4. 有沒有辦法修改TreeView節點符合條件
- 5. 集合在循環中被修改時沒有辦法它可以C#
- 6. 從不可修改的集創建不可修改的集
- 7. 有沒有辦法在Python中的類方法中修改類?
- 8. 可修改集合集合WSAPI
- 9. 有沒有辦法使SVG USE隨後可修改(或不同的技術)?
- 10. 修改PHP集合
- 11. 修改子集合
- 12. JENKINS - 有沒有辦法只能更新修改的文件?
- 13. 有沒有辦法在Delphi中修改FD_SETSIZE(WinSock)的值?
- 14. 有沒有辦法修改Ajax調用請求的數據?
- 15. 有沒有辦法修改textAngular中粘貼的內容?
- 16. 有沒有辦法用未修改的libpng解析APNG?
- 17. 有沒有辦法修改重定向頁面的外觀?
- 18. 有沒有辦法修改C#中的進程DACL
- 19. 有沒有辦法修改ckeditor的上傳功能?
- 20. 有沒有辦法修改UITableView的分隔符單元?
- 21. 有沒有辦法修改Chrome開發工具的devTools.css
- 22. 有沒有辦法在html中修改css div的屬性
- 23. 有沒有辦法修改Django FileField使用的存儲後端?
- 24. 有沒有辦法修改IntelliJ的「選擇」對話框?
- 25. 有沒有辦法禁用或修改Xcode的代碼完成?
- 26. 有沒有「修改」字段?
- 27. 可變的斯卡拉集合的不可修改的看法
- 28. 施放一個不可修改的集合
- 29. 如何創建一個深度不可修改的集合?
- 30. 有沒有辦法在MySQL中定購之前修改列?
「不可修改」表示您無法修改它。你真的需要做什麼?你不能只用你需要的元素創建一個新的列表嗎? –
最簡單的方法是從原始的列表中創建一個新列表。你想達到什麼目的?這可能是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Itai
我正在嘗試創建用於瀏覽和編輯圖像的應用程序。爲此,我使用方法showOpenMultipleDialog()。當我嘗試從此方法返回的列表中刪除任何文件時。文件被刪除,但從文件列表中刪除該文件的操作會引發異常。 –