Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Иконка типа файла, есть пример, но возможно не самый лучший 
:(
    Опции темы
Platon
Дата 17.2.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Здравствуйте, уважаемые.

Встал вопрос с отображением иконки типа файла, в инете нашел более-менее нормальное решение:

Маленькая иконка
Код

File file = null;
String extension = "doc";

try
{
     //Create a temporary file with the specified extension
     file = File.createTempFile("icon", "." + extension);
 
     FileSystemView view = FileSystemView.getFileSystemView();
     Icon icon = view.getSystemIcon(file);

     //Delete the temporary file
     file.delete();
}
catch (IOException ioe)
{
}


Большая иконка.
Код


    File file = null;
    String extension = "doc";

    try
    {
         //Create a temporary file with the specified extension
         file = File.createTempFile("icon", "." + extension);
     
         sun.awt.shell.ShellFolder shellFolder = sun.awt.shell.ShellFolder.getShellFolder(file);
         Icon icon = new ImageIcon(shellFolder.getIcon(true));

         //Delete the temporary file
         file.delete();
    }
    catch (Exception e)
    {
    }



раборает! Но 1). Меня пугает класс sun.awt.shell.ShellFolder, насколько он распространен? Есть ли он в jre для Линукса? Сам задал вопрос сам отвечаю: 

http://www.onjava.com/pub/a/onjava/2005/08....html?page=last
Цитата

Get Large File Icons

Not to leave Windows lonely, here is an undocumented class that will let you obtain large desktop icons and other file information. The FileSystemView only provides access to file icons of a "default" size, which usually means 16 by 16 pixels. If you look at your operating system desktop, however, you may see icons that are much bigger, with more detail. There is no standardized way of getting to the larger icons, but on Windows you can use the hidden class called sun.awt.shell.ShellFolder to retrieve larger (32 by 32) desktop file icons. This class is only available in Sun's JVM, so it won't work with other vendors, or on other platforms. 


2). Постоянно создавать и удалять файл, чтоб определить тип - это не тема. Выход конечно прост: сделать кеш в виде 2-х Map<String, Icon>
PM MAIL ICQ   Вверх
Platon
Дата 17.2.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Да, забыл указать источник: http://www.codebeach.com/tutorials/get-fil...n-with-java.asp
PM MAIL ICQ   Вверх
w1nd
Дата 18.2.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Platon @  17.2.2008,  13:39 Найти цитируемый пост)
Постоянно создавать и удалять файл, чтоб определить тип - это не тема.

Конечно, не тема. А что мешает доставать значок для нужного файла?

Добавлено @ 01:10
Был, кстати, ещё баг в ShellFolder (как и в FileSystemView, т. к. там используется тот же ShellFolder) при работе в windows: при изменении системных метрик в отношении размеров значков, ShellFolder продолжает возвращать значки стандартных размеров; при этом края картинок просто обрезаются. Наблюдал я это в 1.4.2, так что не знаю, как оно в новых версиях.

Это сообщение отредактировал(а) w1nd - 18.2.2008, 01:21


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 18.2.2008, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(w1nd @  18.2.2008,  02:04 Найти цитируемый пост)
Конечно, не тема. А что мешает доставать значок для нужного файла?

smile фишка в том, что в задумке дерево файлов другого компьютера, и тут уж говорить о нужном (существующем) файле не приходится ^_^


Цитата(w1nd @  18.2.2008,  02:04 Найти цитируемый пост)
Был, кстати, ещё баг в ShellFolder (как и в FileSystemView, т. к. там используется тот же ShellFolder) при работе в windows

Спасибо за предупреждение.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.