// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Добавление выбора файлов к приложению Java
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Добавление выбора файлов к приложению Java - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Добавление выбора файлов к приложению Java

_Составитель: Петр Дворжак link:http://blogs.oracle.com/joshis/entry/a_quick_jfilechooser_demo[+(декабрь 2009 г.)+], редактор: Алёна Сташкова_

В этом учебном курсе вы узнаете, как добавлять выбор файлов к приложению Java с помощью компонента  ``javax.swing.JFileChooser`` . Код можно написать вручную, но использование редактора GUI Builder среды NetBeans существенно снижает объём работы. В рамках этого упражнения вы создадите небольшое приложение Java, загружающее файл  ``.txt``  в текстовую область.

Полученный проект link:https://netbeans.org/projects/samples/downloads/download/Samples%252FJava%252FJFileChooserDemo.zip[+ можно загрузить с использованием средства выбора файлов+]. 


image::images/netbeans-stamp-80-74-73.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.0 и более поздним версиям"]


*Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.*

|===
|Программное обеспечение или материал |Требуемая версия 

|link:http://netbeans.org/downloads/[+IDE NetBeans+] |Версия 7.0 или более поздняя 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработки приложений на языке Java+] (JDK) |Версия 6, 7 или 8 
|===


== Создание приложения

Прежде всего необходимо создать приложение Java:

1. Выберите в главном меню "Файл > Новый проект". Выберите категорию "Java" и тип проекта "Приложение Java". Нажмите кнопку "Далее".
2. В качестве имени проекта введите `JFileChooserDemo`, затем укажите местоположение проекта.
3. Снимите флажок "Создать главный класс".

[.feature]
--
image::images/newproj-small.png[role="left", link="images/newproj.png"]
--



. Нажмите кнопку "Завершить".


== Создание формы приложения

В этом разделе вы создадите контейнер  ``JFrame``  и добавите к нему несколько компонентов.

*Создание формы JFrame:*

1. Щелкните правой кнопкой мыши узел "Исходные файлы" и выберите пункт "Создать > Другое". Выберите категорию "Формы Swing GUI" и тип файла "JFrameForm". Нажмите кнопку "Далее".
2. В поле "Имя класса" введите `JFileChooserDemo`.
3. В поле "Пакет" введите `jfilechooserdemo.resources`.

[.feature]
--
image::images/newjframeform-small.png[role="left", link="images/newjframeform.png"]
--



. Нажмите кнопку "Завершить".


. В окне "Свойства" введите `Demo application` в качестве свойства "Заголовок" и нажмите ENTER для подтверждения.

*Чтобы добавить компоненты к форме JFrame, выполните следующие действия.*

1. В окне "Палитра" откройте категорию "Меню Swing", выберите компонент "Строка меню" и перетащите его в левый верхний угол JFrame.

*Примечание.* Если палитра не отображается, выберите 'Окно > Палитра' в главном меню.

[.feature]
--
image::images/menubaradded-small.png[role="left", link="images/menubaradded.png"]
--



. Правой кнопкой мыши щелкните элемент "Правка" компонента "Строка меню" и выберите в контекстном меню пункт "Удалить".


. Чтобы добавить пункт меню, позволяющий открывать компонент FileChooser из выполняемого приложения, в категории "Меню Swing" в окне "Палитра" выберите новый пункт меню (JMenuItem1), перетащите его в элемент "Строка меню" и поместите его в поле "Файл" элемента "Строка меню".

[.feature]
--
image::images/menuitemadded-small.png[role="left", link="images/menuitemadded.png"]
--

*Примечание. * Убедитесь, что панель меню выбрана до перетаскивания другого элемента меню в него, чтобы добавить этот другой элемент на панель меню.



. Правой кнопкой мыши щелкните элемент jMenuItem1 в режиме конструирования и выберите 'Изменить имя переменной' в контекстном меню. Измените имя элемента на `Open` и нажмите кнопку "ОК".


. Убедитесь, что элемент jMenuItem1 все еще выбран в режиме проектирования. Нажмите клавишу ПРОБЕЛ, чтобы изменить текст компонента. Измените текст на `Open` и нажмите ENTER для подтверждения.


. Укажите обработчик действий для пункта меню "Open". Правой кнопкой мыши щелкните пункт меню и выберите в контекстном меню "События >Действие > Выполненное действие". GUI Builder автоматически переключается в режим просмотра исходного кода, и создается новый метод обработчика событий с именем  ``OpenActionPerformed()`` . Окно навигатора должно выглядеть следующим образом:

image::images/openactionperformednavigator.png[]



. Чтобы добавить пункт меню для выхода элемента FileChooser из создаваемого приложения, вернитесь в режим проектирования, в категории "Меню Swing" в окне "Палитра" выберите пункт меню JMenuItem1 и перетащите его в элемент "Строка меню" под пункт меню "Open". Место вставки элемента  ``JMenuItem1``  выделено оранжевым цветом.

[.feature]
--
image::images/highlighting-small.png[role="left", link="images/highlighting.png"]
--



. Щелкните правой кнопкой мыши элемент  ``jMenuItem1``  в режиме конструирования и выберите 'Изменить имя переменной' в контекстном меню. Измените имя элемента на `Exit` и нажмите кнопку "ОК".


. Убедитесь, что элемент  ``jMenuItem1``  все еще выбран в режиме конструирования. Нажмите клавишу ПРОБЕЛ, чтобы изменить текст компонента. Измените текст на  ``Exit``  и нажмите ENTER для подтверждения.


. Укажите обработчик действий для пункта меню "Exit". Правой кнопкой мыши щелкните пункт меню и выберите в контекстном меню "События >Действие > Выполненное действие". GUI Builder автоматически переключается в режим просмотра исходного кода, и создается новый метод обработчика событий с именем `ExitActionPerformed()`. В окне навигатора, под узлом `OpenActionPerformed()` отображается узел `ExitActionPerformed`.


. Чтобы сделать пункт меню "Exit" рабочим, в тело метода `ExitActionPerformed()` необходимо включить следующий исходный код:

[source,java]
----

			 System.exit(0); 
----


. Переключитесь обратно в режим проектирования. Перетащите текстовую область ( ``JTextArea`` ) из категории 'Элементы управления Swing' палитры на форму, как показано на иллюстрации.

[.feature]
--
image::images/textareadded-small.png[role="left", link="images/textareadded.png"]
--



. Измените размер компонента, чтобы оставить место для текста, который отобразится в выборе файлов позже. Измените имя переменной на `textarea`. Форма должна иметь следующий вид:

[.feature]
--
image::images/jfilechooserdemoview_final-small.png[role="left", link="images/jfilechooserdemoview_final.png"]
--

Основным упражнением данного учебного курса была настройка простого приложения Java. Сейчас следует добавить фактический выбор файлов.


== Добавление выбора файлов

1. Выберите Окно > Навигация > Навигатор, чтобы открыть окно 'Навигатор'(если оно еще не открыто).
2. В навигаторе щелкните правой кнопкой мыши узел  ``Другие компоненты`` . Выберите в контекстном меню пункт "Добавить из палитры > Диалоговые окна Swing > Выбор файлов

Помимо использования контекстного меню  ``Добавить из палитры``  можно также перетащить компонент  ``JFileChooser``  из категории 'Окно Swing' палитры на белое поле конструктора графического интерфейса. Вы получите тот же результат, но данный метод требует немного больше усилий, так как эскиз  ``JFileChooser``  занимает достаточно большую область экрана и можно случайно вставить окно в одну из панелей, что не соответствует поставленной задаче.



. Навигатор показывает, что элемент  ``JFileChooser``  добавлен в форму.


. Щелкните узел  ``JFileChooser``  правой кнопкой мыши и измените имя переменной на `fileChooser`.

image::images/navigator_jframe.png[]

Вы добавили выбор файлов. Далее следует настроить выбор файлов для отображения необходимого заголовка, добавить пользовательский фильтр файлов и интегрировать выбор файлов в приложение.


== Настройка выбора файлов


=== Реализация действия "Открыть"

1. Выберите элемент  ``JFileChooser``  в окне 'Навигатор', затем измените его свойства в диалоговом окне 'Свойства' Измените свойство  ``dialogTitle``  на `Мой открытый диалог`, затем нажмите Enter и закройте диалоговое окно 'Свойства'
2. Нажмите кнопку "Перейти к исходному тексту" в GUI Builder, чтобы вернуться к режиму просмотра исходного кода. Чтобы интегрировать выбор файлов в приложение, необходимо вставить в существующий метод `OpenActionPerformed()` следующий фрагмент кода.

[source,java]
----

private void OpenActionPerformed(java.awt.event.ActionEvent evt) {
    int returnVal = fileChooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        try {
          // What to do with the file, e.g. display it in a TextArea
          textarea.read( new FileReader( file.getAbsolutePath() ), null );
        } catch (IOException ex) {
          System.out.println("problem accessing file"+file.getAbsolutePath());
        }
    } else {
        System.out.println("File access cancelled by user.");
    }
} 
----

*Примечание. * Удалите первую и последнюю строку фрагмента кода, которые дублируют существующие строки в исходном файле.



. Если редактор создает отчет об ошибках в коде, щелкните правой кнопкой мыши в любом месте кода и выберите 'Исправить выражения импорта' или нажмите Ctrl+Shift+I. В диалоговом окне 'Исправить все выражения импорта' примите значения по умолчанию для обновления операторов импорта и нажмите OK.

Итак, метод FileChooser  ``getSelectedFile()``  вызывается для определения файла, выбранного пользователем, в целях дальнейшей работы с ним. В этом примере считывается содержимое файлов, которое затем отображается в TextArea.


=== Реализация фильтра файлов

Теперь можно добавить пользовательский фильтр файлов, благодаря которому в выборе файлов будут отображаться только файлы ``*.txt`` .

1. Переключитесь в режим конструирования и выберите элемент  ``fileChooser``  в окне 'Навигатор'.
2. В окне 'Свойства' нажмите кнопку обзора ('...') рядом со свойством  ``fileFilter`` .
3. В диалоговом окне "Фильтр файлов" выберите пользовательский код из поля со списком.

[.feature]
--
image::images/combobox-small.png[role="left", link="images/combobox.png"]
--



. Введите  ``new MyCustomFilter()``  в текстовое поле. Нажмите кнопку "ОК".


. Для использования пользовательского кода необходимо создать внутренний (или внешний) класс  ``MyCustomFilter`` , расширяющий класс  ``FileFilter`` . Чтобы создать внутренний класс, реализующий фильтр, скопируйте и вставьте следующий фрагмент кода в исходный код класса под операторами импорта.

[source,java]
----

    class MyCustomFilter extends javax.swing.filechooser.FileFilter {
        @Override
        public boolean accept(File file) {
            // Allow only directories, or files with ".txt" extension
            return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");
        }
        @Override
        public String getDescription() {
            // This description will be displayed in the dialog,
            // hard-coded = ugly, should be done via I18N
            return "Text documents (*.txt)";
        }
    } 
----

*Примечание.* Описание реализации более интеллектуальных, поддерживающих переключение фильтров файлов просмотрите метод link:http://java.sun.com/javase/7/docs/api/javax/swing/JFileChooser.html#addChoosableFileFilter%28javax.swing.filechooser.FileFilter%29[+addChoosableFileFilter+].


== Выполнение приложения

1. Для запуска примера проекта щелкните проект JFileChooserDemo правой кнопкой мыши и нажмите кнопку "Выполнить".
2. В диалоговом окне "Запуск проекта" выберите главный класс `jfilechooserdemo.resources.JFileChooserDemo` и нажмите кнопку "ОК".

image::images/run.png[]



. В меню 'Файл' запущенного демо-приложения выберите 'Открыть', чтобы инициировать действие. Результат должен иметь следующий вид:

[.feature]
--
image::images/result_jfilechooserdemo-small.png[role="left", link="images/result_jfilechooserdemo.png"]
--



. Чтобы закрыть приложение, выберите "Выход" в меню "Файл".

Следует обратить внимание на другие полезные окна и диалоговые окна Swing, например ColorChooser или OptionPane в палитре графического интерфейса.

link:/about/contact_form.html?to=3&subject=Feedback:%20Adding%20a%20FileChooser[+Отправить отзыв по этому учебному курсу+]



== Что дальше?

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG920[+Реализация графических интерфейсов Java+] в документе _Разработка приложений в IDE NetBeans_
* link:gui-binding.html[+Привязка компонентов Bean и данных в приложениях Java с помощью IDE NetBeans+]
* link:gui-automatic-i18n.html[+Интерналионализация формы графического интерфейса с помощью IDE NetBeans+]
* link:http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html[+Учебный курс по Java: использование средств выбора файлов+]
