Диалогов прозорец JFileChooser

Всички стандартни диалогови прозорци на Swing имат свои собствени UI представители, които отговарят за интерфейса на прозореца в използваното приложение. Това е особено важно за външния вид и усещането на прозорците, които имитират добре познати платформи, където потребителите не би трябвало да усещат голяма разлика при преминаване от собствени приложения към Java приложения. UIManager ви позволява да персонализирате и локализирате интерфейса на диалоговия прозорецJFileChooser.

Започвайки с пускането на JDK 1.3, библиотеката Swing предоставя много адаптивен инструментJFileChooserза избиране на файлове и по избор директории. Спецификите на различните файлови системи са скрити в подкласовете на абстрактния класFileSystemView, който представя външния вид на файловата структура според използваната операционна система.

JFileChooser е нормален компонент, който наследява класа JComponent, така че можете да го включите навсякъде в интерфейса. Настройването и показването на прост диалогов прозорец за отваряне на файл или запазване на данни в него е доста лесно.

Конструктори JFileChooser

Основен метод на JFileChooser

Описание на метода
Файл getCurrentDirectory()Функция за четене на текущата директория
Низ getDialogTitle()Функция за четене на заглавия на прозореца
int getDialogType()Функция за четене тип диалог
FileFilter getFileFilter()Функция за четене на текущия филтър
Файл getSelectedFile()Функция за четене на избрания файл
Файл[] getSelectedFiles()Функция за получаване на списък с избрани файлове, ако е зададен флагът MULTI_SELECTION_ENABLED_CHANGED_PROPERTY за избиране на множество файлове
void setCurrentDirectory(Файлдиректория)Метод за определяне на текущата директория
void setDialogTitle(StringdialogTitle)Метод за заглавие на диалогов прозорец
void setDialogType(intdialogType)Метод за определяне на вида на диалоговия прозорец
void setFileFilter(FileFilter филтър)Метод за настройка на файлов филтър
void setFileSelectionMode(режим int)Метод за определяне на избираеми обекти - файлове, директории или файлове с директории
void setMultiSelectionEnabled(булев b)Метод за определяне дали могат да бъдат избрани множество файлове
void setSelectedFile(Файлов файл)Метод за избор на файл
void setSelectedFiles(Файл[] selectedFiles)Метод за избор на списък с файлове, ако е зададен флагът за избор на MULTI_SELECTION_ENABLED_CHANGED_PROPERTY
int showDialog(родител на компонент, низ approveButtonText)Функцията за отваряне на прозорец за избор на файл с персонализирано име на бутон
int showOpenDialog(родител на компонент)Функция за отваряне на диалоговия прозорец "Отваряне на файл".
int showSaveDialog(родител на компонент)Функция за отваряне на диалоговия прозорец "Запазване на файл".

Режими на работа на JFileChooser

Преди да отворите диалогов прозорец за избор на файлове или директория, трябва да дефинирате режима на работаJFileChooser. КомпонентътJFileChooserможе да работи в един от трите режима, който се съхранява в свойствотоfileSelectionMode:

  • FILES_ONLY - Налични са само файлове, независимо дали файлът е записан или отворен. По подразбиранеJFileChooserработи в този режим.
  • FILES_AND_DIRECTORIES - налични са директории и файлове. Този режим трябва да се използва само когато е необходимо да се променят общите свойства на файловата система (файловете не се различават от директориите).
  • DIRECTORIES_ONLY - налични са само директории.

МетодътsetFileSelectionMode(mode)се използва за определяне на режима.

Стойности, върнати от компонента JFileChooser

  • APPROVE_OPTION - изборът на файл в диалоговия прозорец беше успешен; избраният файл може да бъде получен чрез метода getFile();
  • CANCEL_OPTION - изборът на файл се отменя с натискане на бутонОтказ;
  • ERROR_OPTION - Възникна грешка при избора на файл или диалогът за избор на файл беше затворен.

Пример за JFileChooser

ПримерътFileChooserTest.javaизползва диалогов прозорец за избор на файл и директория с помощта на компонентаJFileChooser. Интерфейсът на прозореца включва 3 бутона, при щракване върху които се отваря съответният диалогов прозорец. Интерфейсът на главния прозорец е показан на следната екранна снимка.

Примерен списък на JFileChooser

Примерът дефинира бутони,fileChooserселектор на файлове и ФИЛТРИ опции за файлов филтър. Конструкторът дефинира интерфейса на прозореца и извиква методаaddFileChooserListeners()за свързване с бутоните слушател.

Имайте предвид, че компонентите на диалоговия прозорец са локализирани с помощта на методаputна Swing UI ManagerUIManager.

Списък на метода addFileChooserListeners

В методаaddFileChooserListeners()всеки бутон е свързан със собствен слушател, който формира свой собствен диалогов прозорец с определени настройки.

Избор на директория

В коддефинира заглавието на прозореца и режима на отваряне (JFileChooser.DIRECTORIES_ONLY). Интерфейсът на прозорецаJFileChooserв режим на избор на директория е показан на следната екранна снимка.

JFileChooser

Запазване на файл

Кодът определя заглавието на прозореца и режима на отваряне (JFileChooser.FILES_ONLY). Интерфейсът на прозорецаJFileChooserв режим на запис на файл е показан на следната екранна снимка.

JFileChooser

Използване на филтър

Нека покажем два начина за свързване на файлов филтър. Първият начин е, че може да се създаде файлов филтър и да се прикачи към обектJFileChooserс помощта на класаFileNameExtensionFilter, пример за който е показан в следния код.

Вторият начин е да използваме спомагателния вътрешен клас FileFilterExt, който наследява свойствата на класаFileFilter, в който дефинираме две полета (разширение на файл, описание на описание) и заместваме методитеacceptиgetDescription.

Следният код за слушателя за избор на файл за бутонаbtnFileFilterдефинира заглавието на прозореца, инстанцира филтритеFileFilterExt, които са свързани къмfileChooser, и дефинира отворения режим (JFileChooser.FILES_ONLY) в цикъл.

Интерфейсът на прозорецаJFileChooserв режим на избор на файл с използване на файлов филтър е показан на следната екранна снимка.

прозорец

Изтегляне на примери

Изходните кодове на примерите, разгледани на страницата, могат да бъдат изтеглени тук (2,20 Kb).