サムネイル画像の非同期表示

これまで、サムネイル画像の表示を、Swingのイベントディスパッチスレッドで行っていたけど、非同期で読み込むようにした。これで、体感的に待ち時間が減った分、速く動作するようになった気にさせてくれる。
方法は簡単で、サムネイル画像取得時に、サムネイル画像のキャッシュが存在すればそれを表示する。そうでなければ、一時的なアイコンを表示し、サムネイル画像の読み込みをバックグラウンドタスクとして登録する。サムネイル画像が読み込み終わると、読み終えた画像のインデックスから、JListの描画区画をRectangleとして取り出し、JList#repaint(Rectangle)にて再描画する。再描画する際は、サムネイル画像のキャッシュが有効であるため、それが表示される。
このときの注意点として、ディレクトリを開きなおした際、まだバックグラウンドタスクが残っていると、無駄なサムネイル画像読み込みが処理されることになる。そのため、ディレクトリを開きなおすなど、表示する画像が変更されたときは、バックグラウンドタスクを一掃する。