使用 JFileChooser 时,有一个“详细信息视图”按钮。每个文件显示 5 条信息。图标、名称、大小、类型和“修改日期”。什么类控制“类型”值?使用“FileView”类,可以控制图标和名称。使用“文件”类,可以控制大小和“修改日期”。类型描述非常好,我想在其他地方使用它们,我也有一些“新”类型,我希望能够给它们一个“类型”描述。
3 回答
FileView>>getTypeDescription()
这是你想要的?
我认为在 Java 中覆盖类型信息所要做的就是用你自己的 FileSystemView 子类实例化 JFileChooser。
子类 FileSystemView 到 MyFileSystemView
覆盖 getSystemTypeDescription(文件 f)
在您的特殊文件类型的覆盖中,返回您想要的任何内容,并通过使用超级调用返回值来返回默认值,否则
使用以下原型之一实例化您的 FileChooser,将您的自定义 MyFileSystemView 作为第二个参数
JFileChooser(文件当前目录,FileSystemView fsv)
JFileChooser(字符串 currentDirectoryPath,FileSystemView fsv)
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.*;
public class A {
public static void main(String[] args) {
File f = new File("f.jpg");
JFileChooser j = new JFileChooser();
System.out.println(j.getTypeDescription(f));
}
}
输出在我的系统上:
F:>javac A.java
F:>java A
IrfanView JPG 文件
这是因为我的系统上安装了 IrfanView;JFileChooser/FileView>>getTypeDescription() 查询系统(在我的情况下为 Windows)以获取此信息。要“添加您自己的描述”,您可以(如camickr所说)覆盖 getTypeDescription() 或者您可以将其添加到您的系统中(在 Windows 的情况下,在注册表中的 HKEY_CLASSES_ROOT 下)。