// 
//     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"]
--


[start=4]
. Нажмите кнопку "Завершить".


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

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

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

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

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


[start=4]
. Нажмите кнопку "Завершить".

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

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

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

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

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


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

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

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

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


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

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

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

image::images/openactionperformednavigator.png[]


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

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


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

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

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

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

[source,java]
----

			 System.exit(0); 
----

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

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


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

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

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


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

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

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


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

[start=4]
. Щелкните узел  ``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.");
    }
} 
----

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


[start=3]
. Если редактор создает отчет об ошибках в коде, щелкните правой кнопкой мыши в любом месте кода и выберите 'Исправить выражения импорта' или нажмите 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"]
--


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

[start=5]
. Для использования пользовательского кода необходимо создать внутренний (или внешний) класс  ``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[]


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

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


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

Следует обратить внимание на другие полезные окна и диалоговые окна 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: использование средств выбора файлов+]
