Введение в платформу приложений Swing
Данное руководство представляет собой вводный обзор поддержки платформы приложений Swing в среде IDE NetBeans 6.0.
Содержание
Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.
| Среда IDE NetBeans |
версия 6.1 или
версия 6.0 |
| Комплект для разработчика на языке Java (JDK) |
версия 6 или
версия 5 |
Введение: платформа приложений Swing в среде IDE NetBeans 6
Платформа приложений Swing – визуальная платформа, которая упрощает создание и поддержку небольших и средних настольных приложений на Java. Эта платформа состоит из библиотеки классов Java, которая предоставляет средства для достижения следующих целей:
- сохранение информации о состоянии между сеансами;
- упрощение управления действиями, в том числе выполнение в виде фоновых задач и определение поведения при блокировке;
- расширенное управление ресурсами, в том числе предоставление ресурсов для свойств компонента.
Среда IDE обеспечивает следующую поддержку для разработки приложений на основе платформы приложений Swing:
- Предоставление шаблонов проекта настольного приложения на Java, который содержит скелетные реализации основных возможностей платформы. Можно выбрать один из следующих двух шаблонов:
- Базовое приложение. Предоставляет базовую платформу, некоторые типовые пункты меню, строку состояния и механизмы для управления действиями и ресурсами.
- Приложение для работы с базой данных. Предоставляет все возможности шаблона базового приложения, а также все возможности, необходимые для простого приложения для работы с базой данных с функциями создания, чтения, обновления и удаления. Пример использования такого шаблона приведен в разделе Создание настольного приложения на Java для работы с базой данных.
- Интеграция возможностей платформы в GUI Builder среды IDE. Приложения платформы приложений Swing разрабатываются в среде IDE подобно всем прочим приложениям Swing.
- Создание текста UI приложения и других ресурсов в файлах .properties.
- Специальный редактор свойств для действий, который позволяет связывать действия с клавиатурными ускорителями, текстом и появляющимися подсказками. Кроме того, можно настроить свойства таким образом, чтобы был возможен выбор или включение свойств, а также асинхронное выполнение действия.
- Автоматическая упаковка библиотеки платформы приложений Swing в папке dist/lib проекта при сборке приложения в среде IDE.
Примечание: В качестве платформы приложений также может использоваться платформа NetBeans. Основным различием между платформой приложений Swing и платформой NetBeans в этом отношении является объем имеющихся возможностей. Платформа приложений Swing более проста и удобна для начинающих. Платформа NetBeans имеет в своем составе гораздо больше функциональных возможностей; ее целесообразнее использовать для крупных и расширяемых приложений. Для получения дополнительных сведений о разработке приложений на платформе NetBeans см. Учебная карта по платформе NetBeans.
Создание приложения на основе платформы приложений Swing
Для получения всех преимуществ от поддержки платформы приложений Swing в среде IDE рекомендуется использовать шаблон проекта настольного приложения на Java.
Для создания нового проекта приложения платформы приложений Swing:
- Выберите "File > New Project".
- Выберите категорию "Java", а затем выберите шаблон "Java Desktop Application". Нажмите кнопку "Next".

- На странице мастера "Name and Location" введите значения в требуемые поля:

В случае выбора шаблона "Basic Application" нажмите кнопку "Finish" для создания проекта на компьютере пользователя и откройте проект в окне "Projects" и окне "Files".
Если выбран шаблон "Database Application", нажмите кнопку "Next" для определения таблицы базы данных и настройки основного/подробного представления базы данных.
Создаются файлы со следующим содержимым:
- Класс приложения, который имеет в своем составе метод main(), метод startup платформы и методы некоторых других служебных программ. Этот класс расширяет класс платформы SingleFrameApplication.
- Класс представления, который используется в качестве главного окна приложения. Этот класс расширяет класс FrameView платформы и инкапсулирует JPanel. Этот класс можно изменить в GUI Builder.
- Пример окна "About" для приложения.
- Файлы .properties для хранения ресурсов приложения.
Создание и настройка действий
Платформа приложений Swing позволяет определять действия и осуществлять управление этими действиями.
Как указано в руководстве по Java, "объект "действие" – это прослушивающий процесс действия, который обеспечивает не только обработку событий действия, но и централизованную обработку состояния элементов, зависящего от определенных событий или действий, например, кнопок на панели инструментов, пунктов меню, стандартных кнопок и текстовых полей. Состояние, зависящее от действия, может относиться к тексту, значку, мнемоническому символу, статусу "разрешено" или "выбрано".
Аннотация &Action, используемая в платформе, позволяет отметить метод, посредством которого реализуется метод actionPerformed соответствующего действия. На последующих этапах этот метод используется в платформе для выполнения данного действия. Кроме того, можно указать различные атрибуты для действия, определяющие, например, разрешенное состояние действия, поведение действия при блокировке или необходимость выполнения действия в фоновом режиме.
В среде IDE имеется диалоговое окно "Set Action", в котором можно создать код для действий, в том числе аннотацию и любые атрибуты. В диалоговом окне "Set Action" имеются следующие возможности:
- настройка элемента для использования определенного действия;
- создание скелетных действий;
- настройка свойств интерфейса пользователя для действия, например, имени, появляющегося на отображаемом элементе, текста подсказки, значков и сочетаний клавиш;
- создание логического свойства для определения того, включено ли данное действие;
- создание логического свойства для определения того, выбрано ли данное действие (это применимо только в отношении элементов, не являющихся пунктами меню, которые имеют свойство selected, например, переключателей);
- настройка действия для выполнения в виде фоновой задачи;
- настройка действия для блокирования других действий до завершения его выполнения.
Для открытия диалогового окна "Set Action" выберите один из следующих способов:
- Щелкните элемент правой кнопкой мыши и выберите "Set Action".

- Выберите элемент и нажмите кнопку с многоточием (...) рядом со свойством action в окне "Properties".

Диалоговое окно "Set Action" состоит из следующих полей:
- Set Action Property Using. Обеспечивает возможность выбора из нескольких редакторов свойств для настройки свойства action. Имеются следующие варианты выбора:
- Default editor. Обеспечивает визуальную поддержку при создании кода на основе возможностей платформы приложений Swing.
- Value From Existing Component. Позволяет указать элемент для получения значения свойства.
- Custom Code. Позволяет ввести код для установки значения свойства вручную в текстовом поле.
В этом разделе справки описаны только возможности редактора по умолчанию (вариант "Default Editor").
- Action. Из этого поля списка можно выбрать действие для присвоения элементу.
В этом списке перечислены только методы, имеющие аннотацию @Action. Если метод, который требуется использовать, не имеет этой аннотации, выйдите из диалогового окна и добавьте аннотацию к методу.
Если метод для действия еще не создан, выберите "Create New Action". Это позволяет ввести имя метода в поле "Method" данного действия. Кроме того, следует убедиться в том, что в поле "Text" введен текст, который должен использоваться для элемента. После нажатия кнопки "OK" для выхода из диалогового окна автоматически создается скелетное действие.
Примечание: После присвоения действия элементу свойства text, toolTipText и icon этого элемента получают значения согласно настройкам, указанным в диалоговом окне "Set Action". Свойства для элемента, установленные ранее, переопределяются в соответствии со значениями, введенными в диалоговом окне "Set Action". Однако существует возможность возврата к таблице свойств элемента с целью настройки значений, требуемых для данного элемента. В запущенном приложении будут использоваться свойства, установленные специально для данного элемента.
- Action's Class. В случае создания нового действия это поле списка позволяет выбрать класс, которому принадлежит действие.
- Action's Method. В случае создания нового действия это текстовое поле позволяет определить имя метода для создаваемого действия.
- Background Task. Если этот флажок установлен, действие выполняется в фоновом режиме. Это целесообразно в том случае, если выполнение действия занимает продолжительное время, и в процессе выполнения пользователь должен иметь возможность работать с UI.
- Атрибуты, вкладка "Basic":
- Text. Здесь вводится текст, который должен использоваться для отображаемых элементов этого действия, например, кнопок или пунктов меню.
- Tool Tip. Здесь вводится произвольный текст, который должен появляться при наведении указателя мыши на какие-либо элементы, связанные с действием.
- Accelerator. Определяет сочетание клавиш для действия. Для определения требуемого сочетания клавиш выберите поле "Letter" и нажмите соответствующие клавиши. Флажки для любых используемых модифицирующих клавиш, например Ctrl и Shift, выбираются автоматически.
- Icon. При необходимости с этим действием можно связать определенные значки. Для перехода к требуемым значкам используются кнопки "Small Icon" и "Large Icon".
- Атрибуты, вкладка "Advanced":
- Enabled Property. При необходимости здесь можно выбрать логическое свойство компонента, значение которого определяет, включено данное действие или нет. Если такое свойство еще не создано, введите имя для свойства в текстовом поле. После нажатия кнопки "OK" для выхода из диалогового окна автоматически создается скелетное свойство.
- Selected Property. При необходимости здесь можно указать логическое свойство компонента, значение которого определяет, выбрано данное действие или нет. Эта возможность применима только в отношении элементов, которые имеют свойство компонента selected, например, "JRadioButton" или "JToggleButton". После нажатия кнопки "OK" для выхода из диалогового окна автоматически создается скелетное свойство.
- Blocking Type. Позволяет запретить взаимодействие пользователя с UI во время выполнения задачи. Варианты выбора в раскрывающемся списке определяют уровень применения блокировки. Например, можно установить блокировку для приложения в целом, либо только для определенного окна или элемента. Блокировка применяется только в отношении действий, определенных в качестве фоновых задач.
- Blocking Dialog Title. Здесь можно определить заголовок диалогового окна, предупреждающего пользователя о том, что выполнение задачи еще не завершено.
- Blocking Dialog Message. Здесь можно определить текст диалогового окна, предупреждающего пользователя о том, что выполнение задачи еще не завершено.
Примечания:
- По умолчанию ресурсы для действия сохраняются в файле .properties, который имеет то же самое имя, что и файл .java для данного действия. Ключи свойств формируются на основе имени действия. Это относится к таким атрибутам, как текст, подсказка, горячая клавиша, мелкий значок, крупный значок, заголовок и сообщение о блокировке.
- Обзор всех действий в проекте представлен в окне "Application Actions". Для вызова окна "Applications Window" выберите "Window > Other > Application Actions".
Управление ресурсами
Платформа приложений Swing упрощает обработку ресурсов в приложениях и обеспечивает возможность сохранения различной информации в наборах ресурсов.
Под ресурсами здесь подразумеваются объекты, которые используются приложением, но не сохраняются в файлах .java. В состав общих ресурсов программ Java входят файлы образа и базы данных. Кроме того, в качестве ресурсов могут использоваться и другие объекты, например строки, цвета и шрифты. Обработка строк в качестве ресурсов значительно упрощает локализацию приложения. Обработка других объектов в качестве ресурсов предоставляет возможность изменения значений этих объектов без изменения кода .java и повторной сборки приложения.
Типичное приложение платформы приложений Swing содержит наборы ресурсов и на уровне приложения, и на уровне класса. Наборы ресурсов на уровне класса имеют те же самые имена, что и соответствующее классы .java, однако они имеют расширение имени файла .properties. Все эти наборы ресурсов инкапсулированы в объекте ResourceMap.
Диалоговое окно "Project Properties" позволяет изменить некоторые стандартные ресурсы на уровне приложения (например, имени приложения). Ресурсы на уровне приложения, не отображаемые в диалоговом окне "Project Properties" (например, ресурсы, определяемые самостоятельно), можно изменить в файле .properties, имя которого соответствует имени главного класса приложения.
Для вызова диалогового окна "Project Properties" щелкните узел проекта правой кнопкой мыши и выберите "Properties". Свойства приложения отображаются на панелях "Application" и "Desktop Application".
При запуске приложения из шаблона проекта настольного приложения на Java по умолчанию создается код с учетом правил платформы приложений Swing, применимых к управлению ресурсами (например, к тексту UI). Определяемые значения свойств элемента также сохраняются в качестве ресурсов.
Существует возможность настройки способа создания кода для обработки ресурсов.
Для указания способа создания кода настройки для определенной формы:
- Откройте форму и перейдите к режиму проектирования.
- В окне "Inspector" выберите корневой узел формы.

- В окне "Properties" из раскрывающегося списка "Automatic Resource Management" выберите один из следующих вариантов.
- Off. Все значения свойства жестко запрограммированы в файле .java.
- Internationalization. Код ресурса создается для всех строк, и значения строк сохраняются в файле .properties.
- All Resources. Код ресурса создается для всех строк, цветов, шрифтов и значков. Значения для этих свойств сохраняются в файле .properties.
- Resources + Injection. Код создается таким образом, что значения свойств поступают в приложение из файлов .properties во время выполнения.
Если значение определенного свойства не требуется сохранять в файле .properties, нажмите кнопку с многоточием (...) рядом с данным свойством в окне "Properties". Затем отмените выбор свойства "Define as Resource".
Типовые проекты платформы
Для рассмотрения примеров, иллюстрирующих работу платформы, можно перейти к обзору некоторых демонстрационных проектов на основе платформы в среде IDE. Платформа приложений Swing используется в проектах "Mars Rover Viewer" и "Document Editor". Они основаны на двух примерах, которые поставляются вместе с библиотекой платформы приложений Swing. Однако они были созданы повторно при помощи GUI Builder среды IDE и поэтому могут использоваться в качестве демонстрационных проектов для изучения средств визуального проектирования, предусмотренных в среде IDE.
Для перехода к одному из этих примеров в среде IDE:
- Выберите "File > New Project".
- Выберите "Samples > Java Category". Затем выберите проект "Mars Rover Viewer" или проект "Document Editor".
- Выполните остальные действия в мастере.
Дополнительная информация
Для ознакомления с более общим обзором работы с GUI Builder в среде IDE см. Введение в разработку графического интерфейса.
Для получения информации об использовании шаблона проекта настольного приложения на Java с целью создания приложения базы данных с основным/подробным представлением см. Создание настольного приложения на Java для работы с базой данных.
Для получения дополнительных сведений непосредственно о платформе приложений Swing см. https://appframework.dev.java.net/intro/index.html и http://java.sun.com/developer/technicalArticles/javase/swingappfr/.
Для ознакомления с общими советами и рекомендациями по использованию GUI Builder в среде IDE NetBeans см. часто задаваемые вопросы по GUI Editor и блог Патрика Кигэна (Patrick Keegan).
Для перехода к документации по интерфейсу API платформы приложений Swing непосредственно из среды IDE выберите "Help > Javadoc References > org.jdesktop.application (Swing Application Framework [JSR-296])". Кроме того, можно ознакомиться с документацией по классам платформы путем щелчка правой кнопкой мыши класса платформы или члена класса в редакторе исходного кода среды IDE и последующего выбора пункта "Show Javadoc".