JFileChooser и «Просмотр сведений» - PullRequest
3 голосов
/ 07 марта 2011

При использовании JFileChooser есть кнопка «Просмотр сведений».В каждом файле отображается 5 единиц информации.Значок, Имя, Размер, Тип и «Дата изменения».Какой класс контролирует значение типа?Используя класс FileView, можно управлять иконкой и именем.Используя класс File, можно управлять размером и датой изменения.Описания типов очень хороши, и я хотел бы использовать их в других местах, также у меня есть несколько «Новых» типов, которым я бы хотел дать описание «Типа».

Ответы [ 3 ]

1 голос
/ 07 марта 2011
0 голосов
/ 08 марта 2011

Я думаю, что вам нужно сделать, чтобы переопределить информацию о типах в Java, создать экземпляр JFileChooser со своим собственным подклассом FileSystemView.

  • подкласс FileSystemView для MyFileSystemView

  • переопределить getSystemTypeDescription (файл f)

  • в этом переопределении для вашего специального типа файла возвращайте все, что вы хотите, и возвращайте значение по умолчанию, возвращая значение из-за использования супер-вызова в противном случае

  • создание экземпляров FileChoosers с помощью одного из следующих прототипов, предоставляя настраиваемый MyFileSystemView в качестве второго аргумента

JFileChooser (файл currentDirectory, FileSystemView fsv)

JFileChooser (String currentDirectoryPath, FileSystemView fsv)

0 голосов
/ 07 марта 2011
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

Файл JPG IrfanView

Это потому, что в моей системе установлен IrfanView;JFileChooser / FileView >> getTypeDescription () запрашивает у системы (в моем случае Windows) эту информацию.Чтобы «добавить свои собственные описания», вы можете (например, camickr сказал) переопределить getTypeDescription () или добавить его в свою систему (в случае Windows в реестре под HKEY_CLASSES_ROOT).

...