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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JFileChooser save extension, Как получить выбранное расширение? 
V
    Опции темы
newinjava
Дата 5.5.2011, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


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

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



Имеется JFileChooser  в котором указанны несколько FileFilter для JPG, PNG, GIF.
Как мне получить от JFileChooser  при сохранении кокое расширение было выбронно?

Я получаю с помощью getSelectedFile файл в который я буду сохранять, но как мне получить выбронный extension к этому файлу?

PM WWW   Вверх
Stolzen
Дата 6.5.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Пример из мануала по swing:

Код

public class Utils {
    ...
    public static String getExtension(File f) {
        String ext = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');

        if (i > 0 &&  i < s.length() - 1) {
            ext = s.substring(i+1).toLowerCase();
        }
        return ext;
    }
}

...

File file = fc.getSelectedFile();
String extension = Utils.getExtension(file);


Это сообщение отредактировал(а) Stolzen - 6.5.2011, 10:36


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
newinjava
Дата 7.5.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


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

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



Я про этот пример знаю. Проблема в том, что если при сохранении я просто напишу имя файла без расширенмя к примеру "новый" то этот пример и вернет мне файл с именем "новый". А мне надо чтобы он посмотрел какое расширение выбранно в ФайлФильтре и дописал его к имени. К примеру: Выбронно расширение "*.jpg" и написано имя "новый" то вернется не просто "новый" а "новый.jpg".
PM WWW   Вверх
_Y_
Дата 7.5.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



newinjava, мне кажется, что все равно продется узменять полученную String строку:
1) Смотреть какое расширение введено.
2) Если никакого - добавлять то, что по умолчанию:


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
newinjava
Дата 7.5.2011, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


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

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



Это все понятно что прейдется изменять стринг. Проблема в том как мне узнать от ФайлЧузера какое расширенме из всех предложенных выбрал пользователь! 
Простой пример: Открываем МСпайнт и пытаемся сохранить новый рисунок, дак вот в МСпайнт ФайлЧусер придлагает выбор в коком формате будит сохранятся картинка. Как мне реализовать такое? Я уже предлагаю пользователю выбор расшерений, но как мне теперь узнать что он выбрал?
PM WWW   Вверх
Stolzen
Дата 8.5.2011, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Использовать

Код

FileFilter filter = fc.getFileFilter();


Можно, например, сделать абстрактный класс 
Код

abstract class ExtFileFilter extends FileFilter {
    public abstract String getExt();
}


И добавлять 

Код

        fc.addChoosableFileFilter(new ExtFileFilter() {
            ...
            @Override
            public String getExt() {
                return "log";
            }
        });
        
        fc.addChoosableFileFilter(new ExtFileFilter() {
            ...
            @Override
            public String getExt() {
                return "java";
            }
        });


А потом после запуска диалога:
Код

ExtFileFilter filter = (ExtFileFilter)fc.getFileFilter();


Это сообщение отредактировал(а) Stolzen - 8.5.2011, 08:37


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
newinjava
Дата 8.5.2011, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


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

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



Спасибо огромное. То что надо.

О всемогущий и вездесущий глаз модератора smile , отблагодори доброго человека за меня smile, осыпь его чудодействующим ПЛЮСОМ. Ибо я сам не в силах!  smile 

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


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

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