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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получение иконки файла пол linux, как получить иконку файла под Linux 
:(
    Опции темы
Atum
Дата 13.4.2010, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

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



Добрый день 

есть такой вот код под OS Window

Код


  JFrame frame = new JFrame("CustomIconDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setLocationRelativeTo(null);

        File file = new File("E:\\Project1.dll");

        ShellFolder sf = ShellFolder.getShellFolder(file);


        Icon icon32x32 = new ImageIcon(sf.getIcon(true));

        JButton btn = new JButton(icon32x32);
        frame.add(btn);
        frame.setVisible(true);

 

который возвращает  иконку 32 на 32 

файла или папки 

   File file = new File("E:\\Project1.dll");

но ShellFolder   sf.getIcon(true)  под linux возвращает null


вопрос : как получить иконку файла под linux ?
PM MAIL   Вверх
jk1
Дата 13.4.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Видимо стоит указать правильный путь к файлу вместо E:\\Project1.dll



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Atum
Дата 13.4.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

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



Цитата(jk1 @ 13.4.2010,  16:35)
Видимо стоит указать правильный путь к файлу вместо E:\\Project1.dll

Это пример под Window 

можно было записать E:\\TMP

где TMP - это папка 

соответственно под linux у меня идут правильные пути  для примера возьмите любой файл (папку) /home и т.д.


Это сообщение отредактировал(а) Atum - 13.4.2010, 16:45
PM MAIL   Вверх
jk1
Дата 13.4.2010, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Код

Icon icon = new ImageIcon("путь к файлу")

При правильном указании пути работает под всеми осями. Что касается ShellFolder, то этот странный недокументированный класс может отсутствовать на некоторых JVM и в целях совместимости использовать его не стоит.

Это сообщение отредактировал(а) jk1 - 13.4.2010, 17:32


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Atum
Дата 14.4.2010, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

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



Хорошо Уточню свой вопрос - как мне получить Иконку файла или Папки под Linux ( у меня сейчас есть Solaris и Ubuntu  )


PM MAIL   Вверх
jk1
Дата 15.4.2010, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Под Linux (пробовал под Fedora) работает такой фокус
Код

Icon icon = FileSystemView.getFileSystemView().getSystemIcon(new File("/home/jk/log.xml"));



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Atum
Дата 15.4.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

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



Цитата(jk1 @ 15.4.2010,  11:41)
Под Linux (пробовал под Fedora) работает такой фокус
Код

Icon icon = FileSystemView.getFileSystemView().getSystemIcon(new File("/home/jk/log.xml"));

Спасибо , но это решение я знаю - оно немного мне не подходит и вот почему : 

Возвращается иконка не операционной системы  , а java 
для примера возьмите и укажите в пути папку
 - и посмотрите как отображается иконка папки в системе её - цвет , размер и т.д. 

и то что вернется в icon  - вернется иконка java из java tree ...с размером  16 на 16 

, а мне надо 32 на 32 (ну или тот размер который стоит в системе сейчас).






Это сообщение отредактировал(а) Atum - 15.4.2010, 16:54
PM MAIL   Вверх
Amp
Дата 15.4.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



В файловом менеджере muCommander на этот счет заморачиваться не стали и предоставили в настройках выбор - либо программа использует свой набор иконок, либо то, что возвращает java (т.е. в линуксе оно ничего вразумительного не возвращает). 

Из отвязанных от каких-то специфических библиотек и api вариантов решения проблемы вижу следующее: определение текущей темы иконок в системе (наверное это требует различных действий для разных десктоп-менеджеров). Далее по пути /usr/share/icons/<имя темы>/ извлекаются иконки в соответствии с требуемым размером и mimetype-ом. Костыли, как они есть.

Информация отсюда может чем-то поможет - http://standards.freedesktop.org/shared-mi...pec-latest.html
PM MAIL   Вверх
Atum
Дата 16.4.2010, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

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



спасибо - буду пробовать 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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