如何在 JFileChooser
中显示文件的默认系统图标?即 JFileChooser
中文件的图标应该与出现在桌面和资源管理器中的图标相同吗?
例如,NetBeans 图标在 JFileChooser
中的显示与在桌面上的显示不同!
如何做到这一点?
最佳答案
我们可以使用 FileSystemView
类并通过调用其中的 getFileSystemView()
静态方法获取它的对象,然后使用 getSystemIcon()
方法接受一个 File
对象并返回它的图标。
FileSystemView
和 FileView
类存在于 javax.swing.filechooser
包中。
File
类在 java.io
包中。
注意:FileSystemView
不扩展FileView
。因此,您不能在 jf.setFileView()
FileSystemView
对象
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
表示当前帧。假设编写这段代码的类是 JFrame
或者以一种简单的方式,
jf.setFileView(new FileView(){
public Icon getIcon(File f)
{
return FileSystemView.getFileSystemView().getSystemIcon(f);
}
});
关于java - 如何在 JFileChooser 中显示文件的默认系统图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630055/