4

私はJavaFXで画像スライドショーアプリケーションに取り組んでおり、しばらくするとJavaがクラッシュし、空きメモリエラーが発生しませんでした。インターフェイスコードには次のものがあります。

image = new ImageView();
Group root = new Group(image);
imageScene = new Scene(root, height, width);        
primaryStage.setScene(imageScene);

バックグラウンドスレッドで、画像ビューの画像ソースを設定しました:

...
Map<String, Image> imagesMap = new HashMap<>();
...
// Slide thread
if (!imagesMap.containsKey(item.File)) {
Image image = new Image(item.File);
imagesMap.put(item.File, image);
}
Image i = imagesMap.get(item.File);
image.setImage(i);

アプリの実行中 (パラメータ: -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xmx256m) で、Java プロセスに割り当てられたメモリが常に増加しています...

4

1 に答える 1

-6

以下のコードを使用して画像サイズを縮小します

Image img = ic.getImage();  
Image newimg = img.getScaledInstance(500, 700,  java.awt.Image.SCALE_SMOOTH);

このアプリでは元の画像サイズを使用していると思います。

于 2013-09-19T09:19:32.053 に答える