4

使用 JFileChooser 时,有一个“详细信息视图”按钮。每个文件显示 5 条信息。图标、名称、大小、类型和“修改日期”。什么类控制“类型”值?使用“FileView”类,可以控制图标和名称。使用“文件”类,可以控制大小和“修改日期”。类型描述非常好,我想在其他地方使用它们,我也有一些“新”类型,我希望能够给它们一个“类型”描述。

4

3 回答 3

1
FileView>>getTypeDescription()

http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/filechooser/FileView.html#getTypeDescription%28java.io.File%29

这是你想要的?

于 2011-03-07T15:14:43.907 回答
0

我认为在 Java 中覆盖类型信息所要做的就是用你自己的 FileSystemView 子类实例化 JFileChooser。

  • 子类 FileSystemView 到 MyFileSystemView

  • 覆盖 getSystemTypeDescription(文件 f)

  • 在您的特殊文件类型的覆盖中,返回您想要的任何内容,并通过使用超级调用返回值来返回默认值,否则

  • 使用以下原型之一实例化您的 FileChooser,将您的自定义 MyFileSystemView 作为第二个参数

JFileChooser(文件当前目录,FileSystemView fsv)

JFileChooser(字符串 currentDirectoryPath,FileSystemView fsv)

于 2011-03-07T22:29:55.077 回答
0
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 下)。

于 2011-03-07T16:35:21.413 回答