JFileChooser和“详细信息视图”

时间:2011-03-07 14:59:19

标签: java swing jfilechooser

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

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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(),或者您可以将其添加到您的系统中(如果是HKEY_CLASSES_ROOT下的注册表中的Windows)。

答案 2 :(得分:0)

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

  • 将FileSystemView子类化为MyFileSystemView

  • 覆盖getSystemTypeDescription(文件f)

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

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

  

JFileChooser(File currentDirectory,FileSystemView fsv)

     

JFileChooser(String currentDirectoryPath,FileSystemView fsv)