We can use the FileSystemView
class and get it's object by calling getFileSystemView()
static method in it and then use the getSystemIcon()
method which takes a File
object and returns it's icon.
FileSystemView
and FileView
classes are present in javax.swing.filechooser
package.
File
class is in the java.io
package.
Note: FileSystemView
does not extend FileView
. Hence you cannot use FileSystemView
object in jf.setFileView()
JFileChooser jf=new JFileChooser();
jf.setFileView(new MyFileView());
jf.showOpenDialog(this);
class MyFileView extends FileView
{
public Icon getIcon(File f)
{
FileSystemView view=FileSystemView.getFileSystemView();
return view.getSystemIcon(f);
}
}
this
represents the current frame. Assume that the class in which this code is written is sub class of JFrame
Or in a simple way,
jf.setFileView(new FileView(){
public Icon getIcon(File f)
{
return FileSystemView.getFileSystemView().getSystemIcon(f);
}
});