मुझे अपने एप्लिकेशन में छवियों को लोड करने में समस्या है। मैं एक साधारण छवि ब्राउज़र बनाने की कोशिश कर रहा हूँ। बाईं तरफ मुझे फ़ोल्डर्स की एक सूची मिली है। सूची छवियों पर फ़ोल्डर के नाम पर क्लिक करने के बाद दाएं (प्रवाह फलक) पर दिखाई देना चाहिए। प्रत्येक छवि एक सीमा के साथ एक HBox में है। लेकिन मैं इस जल्दी की तरह त्रुटि हो रही है:जावाएफएक्स - छवियों और मेमोरी समस्याओं को लोड करना
java.lang.outofmemoryerror java heap space
मैं कार्य प्रबंधक पर देखा - अगर मैं केवल 6 तस्वीरें लोड एप्लिकेशन स्मृति के 500MB ले जाता है! और एक और बात - अगर मैं सूची में फ़ोल्डर बदलता हूं तो स्मृति बनी रहती है। जबकि अन्य फ़ोल्डर मैं नए flowPane
flowPane = new FlowPane();
तो सब ImageViews के साथ पुराने एक कचरा कलेक्टर द्वारा हटा दिया जाना चाहिए, सही बना रहा हूं चुनने?
मैं अपने ऐप में छवियों को प्रभावी ढंग से कैसे प्रबंधित कर सकता हूं?
for(int i = 0 ; i < zdjecia.length; i++){
ImageView iv2 = new ImageView();
Image image = new Image("file:"+zdjecia[i].getAbsolutePath());
iv2.setImage(image);
if(image.getHeight() > image.getWidth()){
iv2.fitHeightProperty().bind(szerokoscZdjecia.multiply(0.8).subtract(6));
}else
iv2.fitWidthProperty().bind(szerokoscZdjecia.subtract(6));
iv2.setPreserveRatio(true);
iv2.setSmooth(true);
iv2.setCache(false);
String styl = "-fx-border-color: #b2b3b3;"
+ "-fx-border-width: 2;";
HBox boxNaFotke = new HBox();
boxNaFotke.prefWidthProperty().bind(szerokoscZdjecia);
boxNaFotke.prefHeightProperty().bind(szerokoscZdjecia.multiply(0.8));
boxNaFotke.setAlignment(Pos.CENTER);
boxNaFotke.setStyle(styl);
boxNaFotke.getChildren().add(iv2);
fotki.add(boxNaFotke);
flowPane.getChildren().add(boxNaFotke);
}
मैं एक ही समस्या है :( – Xdg