可以为JFileChooser控件改变文件视图,利用setFileView(FileView fileView)方法进行设置。可以自定义文件视图,可以设置给定文件的图标和字符串。需要重写的方法有:
public Icon getIcon(File f)返回图标
public String getName(File f)返回字符串
public Boolean isTraversable(File f)表示一个文件是否可以打开
一个实例,对java源代码文件的图标进行改变,其它不改变。代码如下:
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.filechooser.FileView;
public class CustomFileView extends FileView
{
Image im = Toolkit.getDefaultToolkit().getImage("img/clouds.jpg");
ImageIcon image = new ImageIcon(im.getScaledInstance(20, 20, Image.SCALE_SMOOTH));
@Override
public String getName(File f)
{
// TODO Auto-generated method stub
String name = f.getName();
return name.equals("") ? f.getPath() : name;
}
@Override
public Icon getIcon(File f)
{
// TODO Auto-generated method stub
if(f.getName().endsWith(".java"))
return image;
else
return super.getIcon(f);
}
@Override
public Boolean isTraversable(File f)
{
// TODO Auto-generated method stub
return f.isDirectory() ? Boolean.TRUE : Boolean.FALSE;
}
}
创建一个JFileChooser控件,设置其文件视图为自定义的文件视图,
JFileChooser chooser = new JFileChooser();
chooser.setFileView(new CustomFileView());
运行显示如下:
由于水平有限,如果有错误,请大家多多指导,提高水平,共同学习。