UNC パス上のすべてのファイルの完全なリストが必要です。メソッドを使用すると、ファイルのリストが非常に遅くなりjava.io.File.listFiles()
ます。FileSystemView.getSystemIcon
私のアプリケーションは、それをレンダリングするために使用してファイルアイコンを取得しようとすると、スタックしますJTable
。メソッドの下の特定のコードにコメントを付けると、run
スタックしません。この問題を解決するにはどうすればよいですか?
import java.io.File;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.filechooser.FileSystemView;
/**
*
* @author admin
*/
public class MySwingWorker implements Runnable {
private JLabel label;
private String strFile;
private Icon icon;
public MySwingWorker(String strFile, JLabel label) {
this.strFile = strFile;
this.label = label;
}
@Override
public void run() {
File f = new File(strFile);
try {
FileSystemView fw = FileSystemView.getFileSystemView();
if (f.exists() == true) {
icon = fw.getSystemIcon(f);
} else {
File fTemp = new File(System.getProperty("pro.temp.home"), "Temp");
if (fTemp.exists() == false) {
try {
fTemp.mkdirs();
} catch (Exception ex) {
//ignored
}
}
//Replaced "Temp" with fTemp
File fNewFile = new File(fTemp, f.getName());
if (fNewFile.createNewFile()) {
icon = fw.getSystemIcon(fNewFile);
}
}
} catch (Exception e) {
}
label.setIcon(icon);
}
}