私のJava GUIアプリケーションには、繰り返しスケーリングする必要があるコンポーネントがいくつかあり、次のコードでこれを行っています:
Image newImage = myimage.getScaledInstance(width, height, Image.SCALE_REPLICATE);
ImageIcon newIcon = new ImageIcon(newImage);
this.setIcon(newIcon);
this.setSize(width,height);
//increment width, height
最初はこれで問題なく動作しますが、何度も (数百回) 繰り返した後、いくつかの単純な時間チェックに基づいて、新しい ImageIcon() コンストラクターに異常な時間がかかります (約 1 秒)。コードの残りの部分は高速です。
何度も繰り返した後にこれが発生するのはなぜですか? また、繰り返しが増えるにつれて速度が低下しないようにするにはどうすればよいですか? (画像の読み込みは一定時間の操作ではないため、バックグラウンド スレッドでの画像の読み込みは機能しません)。