我正在做一個簡單的圖片瀏覽器java
,使用javafx
打開約10張圖片後,它需要很多ram!如何關閉一個打開的圖像,java/javafx
很明顯,我需要正確關閉打開的圖片(即現在還沒有露出來了!)(在我的測試/使用的情況下,照片是巨大的!)
這只是一塊代碼.. 。
但它的一切都需要知道
private HashMap<Image, String> adrs; // a hashMap from thumbNail to address of the image
ObservableList<ImageView> list; // list of thumbNails
@FXML public ListView<ImageView> pics;
@FXML public ImageView preview;
public void init(String[] picAdrs){
loadThumbNails(picAdrs); // initializes thumbNails (list)
pics.setItems(list);
pics.getSelectionModel().selectedItemProperty().addListener((v, oldvalue, newvalue) -> {
// --> this is where the previous value of "preview.getImage()" should be closed <--
// (and i don't know how!)
preview.setImage(new Image(adrs.get(newvalue.getImage()));
// and more (not related codes...)
}
}
private void loadThumbNails(String[] picAdrs){
// initializing list & adrs
for(String i : picAdrs){
Image img = new Image(new File(i).toURI().toString(), 200, 0, true, false);
ImageView iv = new ImageView();
iv.setImage(img);
adrs.put(img, new File(i).toURI().toString());
list.add(iv);
}
}
縮略圖的左側和「預覽」在右邊:
Just a preview of the Scene
,因爲它似乎真的很簡單! ...一個簡單的方法將不勝感激!
順便說一句...代碼工作,這只是關於我的評論
部分我用的垃圾收集器,但我還是希望有一個更好的辦法我所知system.gc
降低了約50%,內存使用是不可靠的
嘗試檢出此問題http://stackoverflow.com/questions/26325996/safely-close-remove-file-for-imageview- in-javafx –
請發佈負責加載圖片的代碼並描述用戶如何在不同的圖片之間交換。 – fabian
@ Collins.A這篇文章是關於刪除...已閱讀它... tnx無論如何 – SASA1024