を使用してファイルから画像をロードする画像ギャラリーを作成する必要がある課題がありSwingWorker
ます。画像がロードされると、画像を反転してスライドショーを再生できます。を使用してロードされたイメージのリストを取得するのに問題がありますSwingWorker
。
これは、結果を TextArea にパブリッシュするバックグラウンドで発生することです。
// In a thread
@Override
public List<Image> doInBackground() {
List<Image> images = new ArrayList<Image>();
for (File filename : filenames) {
try {
//File file = new File(filename);
System.out.println("Attempting to add: " + filename.getAbsolutePath());
images.add(ImageIO.read(filename));
publish("Loaded " + filename);
System.out.println("Added file" + filename.getAbsolutePath());
} catch (IOException ioe) {
publish("Error loading " + filename);
}
}
return images;
}
}
完了したら、画像を a に挿入するだけList<Image>
です。
// In the EDT
@Override protected void done() { 試行 {
for (Image image : get()) {
list.add(image);
}
} catch (Exception e) { }
}
また、取得する必要があるのはリストからlist
呼び出されたものを返すメソッドを作成しましたが、たとえば呼び出したときに機能しませんgetImages()
getImages()
execute()
MySwingWorkerClass swingworker = new MySwingWorkerClass(log,list,filenames);
swingworker.execute();
imageList = swingworker.getImage()
に到達するimageList
と、何も返されません リストを取得できた唯一の方法は、リストを取得する別の方法がありますか、それともメソッドが唯一の方法ですか?のrun()
代わりに を使用したときでした。または、おそらくクラスを理解していません。execute()
run()
Swing Worker