Афоризм
"Нахал!" – совсем не значит "Прекратите".
Наталья Резник
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Уроки изучения JaBricks

Предисловие

Изучение JaBricks лучше всего начать с уроков. Необязательно следует сразу же приступать к их выполнению. Достаточно внимательно просмотреть решения задач.

Уроки между собой связаны и построены таким образом, чтобы каждый следующий урок был повторением предыдущего с добавлением новой функции. Из первых десяти уроков, вообще не требующих какого-либо программирования, Вы должны понять, что такое модульное OSGi-программирование, и как это реализовано в приложении JaBricks.

Здесь Вы встретитесь с такими функциональными возможностями бандлов приложения JaBricks, как динамическое в режиме run-time изменение локализуемого интерфейса модулей, либо подключение к серверу БД. Конечно же, кто-то скажет или подумает, что это лишняя, не имеющая практического применения функциональность. И он будет прав. Но, со своей стороны скажу, что эта функциональность связана с реализацией механизма «публикация/подписка», позволяющая связать в многомодульном приложении разделенные между собой бандлы в единую информационную систему. Бандлы, согласно технологии OSGi, могут видеть только набор загруженных во OSGi-фреймворк бандлов, ничего не зная об их функциональности. Используя механизм «публикация/подписка» Вы можете связать функциональные части бандлов между собой.

Помните, что JaBricks – это платформа, включающая большое количество разноплановых ресурсов и помогающая с минимальными трудозатратами создать готовое приложение с использованием библиотеки Swing. Только осознав, что данная платформа будет Вам необходима для создания приложений, Вы можете более детально приступить к изучению уроков. Для этого следует всё «пройти/повторить своими руками».

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

Описание уроков

В таблице представлены уроки, которые позволят быстро и с минимальными затратами изучить платформу JaBricks. После освоения уроков Вы будете самостоятельно :

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

Список уроков

Урок Тема Описание
I. Определение структуры, настройка конфигурации, бандлы формирования интерфейса (БЕЗ ПРОГРАММИРОВАНИЯ)
Урок 1 Структура приложения Создание структуры и первый старт приложения JaBricks. Логирование сообщений фреймворка при старте.
Урок 2 Панель инструментов Создание панели инструментов с двумя кнопками и подключение к кнопкам бандлов. Логирование сообщений старта и останова бандлов.
Урок 3 Главное меню Создание главного меню с двумя пунктами; подключение к меню бандлов. Создание иерархического меню.
Урок 4 Многоверсионность Использование в приложение нескольких версий бандлов, подключение бандла «О программе».
Урок 5 Локализация интерфейса Динамическое изменение текущей локализации с обновлением интерфейсных надписей.
Урок 6 Регулируемые настройки интерфейса Сохранение и восстановление регулируемых настроек интерфейса.
Урок 7 Блокирование конфигурации Блокирование доступа к файлам конфигурации, запрет расширения функциональных свойств приложения.
Урок 8 Динамическое подключение модуля Создание приложения, позволяющего выполнять динамическое подключение, старт, останов и деинсталляцию бандлов.
2. Работа с базой данных (БЕЗ ПРОГРАММИРОВАНИЯ)
Урок 9 Подключение к серверу БД Подключение к серверу БД, просмотр таблиц и их записей.
Урок 10 Справочники базы данных Создание приложения управления справочниками БД.
3. Разработка бандлов (ПРОГРАММИРОВАНИЕ)
Урок 11 Главный фрейм Создание главного фрейма приложения.
Урок 12 Диалоговое окно JDialog Создание интерфейсного бандла с диалоговым окном.
Урок 13 Интерфейсная панель JPanel Создание интерфейсного бандла с встраиваемой в контейнер главного фрейма панелью.
Урок 14 Интеграция бандлов Создание формы из нескольких интерфейсных бандлов; интеграция бандлов.
4. Создание диаграмм
Урок 15 Столбчатые и круговые диаграммы Построение столбчатых и круговых диаграмм с использованием модуля osgi-jfreechart и утилиты util-jfreechart.
Урок 16 Временны́е и линейные диаграммы Построение временны́х и линейных диаграмм с использованием модуля osgi-jfreechart и утилиты util-jfreechart.
5. Дополнительные возможности
Урок 17 Динамический старт бандлов Динамическая инсталляция бандлов во фреймворк и старт по требованию.

Описание уроков построено таким образом, что на данной титульной странице представлены только задания. В конце каждого урока имеется ссылка, по которой Вы можете перейти на страницу выполнения урока, включающую описание решения. Кроме этого, на странице выполнения имеется контент для скачивания решения и задание для повторения темы урока.

I. Определение структуры, настройка конфигурации, бандлы формирования интерфейса

Данный раздел включает 8 уроков, в которых Вы должны изучить структуру приложения, научиться создавать «Панель инструментов» и «Главное меню», подключать к приложению готовые бандлы и узнать назначение основных бандлов создания интерфейса. «Формирование» приложения будет связано исключительно с определением структуры панели инструментов и/или главного меню во внешних XML-файлах конфигурации. Программирование данный раздел не предполагает.

Таким образом, как в детском конструкторе, из готовых бандлов Вы научитесь собирать и изменять функциональные свойства приложения, т.е. научитесь управлять конфигурацией. В заключительном уроке данного раздела Вы соберете готовое приложение, позволяющее динамически подключать и стартовать бандлы, а также мониторить сообщения OSGi-фреймворка.

Урок 1. Структура приложения

Задание. Необходимо создать структуру базового приложения JaBricks. В директорию конфигурации необходимо загрузить минимально необходимый набор бандлов и бандл фрейма. Все бандлы необходимо зарегистрировать в файле «configuration/bundles.ini». В файле инициализации приложения «jabricks.ini» необходимо определить язык локализации «lang» ['ru' | 'en' | 'de'] и установить флаг вывода сообщений в консоль «log.console».

После старта приложения Вы должны увидеть следующий интерфейс для языка локализации 'ru' :

В консоль будут выведены сообщения об инициализации и старте соответствующих бандлов.

Перейти к решению задачи.

Урок 2. Панель инструментов

Задание. Необходимо создать панель инструментов с тремя кнопками, как это представлено на следующем скриншоте. Одну кнопку необходимо расположить слева на панели инструментов, а две другие – справа. При нажатии на левую кнопку («Панель») необходимо стартовать интерфейсный бандл с панелью, встраиваемую в контейнер главного фрейма (представлена на заднем фоне). При нажатии на правую кнопку «Диалог» необходимо открыть диалоговое окно, представленное на переднем фоне. А при нажатии на кнопку «Выход» – завершить работу приложения.

После старта приложения и нажатия на кнопки Вы должны увидеть следующий интерфейс :

Перейти к решению задачи.

Урок 3. Главное меню

Задание. Необходимо создать главное меню, как это представлено на следующем скриншоте. При выборе пункта меню «Панель» необходимо стартовать интерфейсный бандл с панелью, встраиваемую в контейнер главного фрейма (представлена на заднем фоне). При выборе пункта меню «Диалог» необходимо открыть диалоговое окно, представленное на переднем фоне. А при выборе пункта меню «Выход», либо нажатии горячих клавиш Alt-X – завершить работу приложения.

Отличие данного урока от предыдущего связано с использованием «Главного меню» приложения вместо «Панели инструментов».

После старта приложения и выбора указанных пунктов меню Вы должны увидеть следующий интерфейс. Раскрыть можно только один из пунктов меню «Файл» или «Справка», одновременно нельзя раскрыть оба пункта меню. На скриншоте выполнено «совмещение» изображений, чтобы более понятной была суть задачи.

Перейти к решению задачи.

Урок 4. Многоверсионность

Задание. Необходимо, используя конфигурацию второго урока создать панель инструментов из пяти кнопок. Две кнопки расположить на панели инструментов слева и связать их с однотипными бандлами разных версий, размещающих во фрейме свои интерфейсные панели. Три кнопки расположить в правой части панели инструментов. К двум правым кнопкам также подключить однотипные бандлы разных версий, открывающих при старте диалоговое окно. К третьей кнопке подключить бандл «О программе».

После старта приложения и нажатии кнопок «Панель-1», «Диалог-1» и «О программе» Вы должны увидеть следующий интерфейс.

Перейти к решению задачи.

Урок 5. Локализация интерфейса

Задание. Необходимо собрать приложение с интерфейсными бандлами (templ-jpanela, templ-jdialoga, form-about), включающих метки, кнопки, таблицы, и «подписывающихся» на сообщения динамической локализации «jabricks/LocaleEvent». Динамическое изменение локализации выполнить бандлом form-locale после старта всех интерфейсных модулей.

Перейти к решению задачи.

Урок 6. Регулируемые настройки интерфейса

Задание. В этом уроке необходимо познакомиться с содержимым динамически формируемой поддиректории gui и узнать, как она создается и что за файлы записываются и обновляются в этой поддиректории.

Перейти к описанию.

Урок 7. Блокирование доступа к конфигурации

Задание. Одна из функций платформы JaBricks связана с закрытием доступа к конфигурации приложения, блокирующая возможность расширения или изменения функциональных свойств. В этом уроке необходимо выполнить блокировку доступа к конфигурации приложения.

Перейти к решению задачи.

Урок 8. Динамическое подключение модуля

Задание. После выполнения предыдущих уроков Вы должны ориентироваться в конфигурации платформы JaBricks. В данном заключительном уроке первого раздела необходимо из готовых модулей собрать приложение, позволяющее выполнять динамическое подключение (инсталляцию), старт, останов и отключение бандлов.

Перейти к решению задачи.

2. Работа с базой данных

Данный раздел включает 2 урока, в которых Вы должны из готовых бандлов собрать приложение взаимодействия с сервером базы данных (БД). Используемые в уроках готовые бандлы позволяют подключаться к серверам БД, создавать в БД справочные таблицы, а также через интерфейсные формы управлять записями (добавлять, обновлять, удалять). Вы сможете загрузить в интерфейс приложения список табличных объектов БД и постранично просматривать их записи.

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

Урок 9. Подключение к серверу БД

Задание. Необходимо создать приложение с возможностью подключения к серверу БД и просмотром таблиц. Для подключения к серверу БД использовать бандл db-connection, который зарегистрируйте с атрибутом @start. Просмотр таблиц БД и их записей выполнить с использованием бандла db-objects. Для старта бандлов используйте главное меню.

После старта приложения сразу должно открыться окно авторизации, т.е. должен стартовать бандл db-connection. При успешной авторизации откройте окно просмотра таблиц БД. Если Вы повторно откроете окно авторизации, то увидите, что бизнес-логика db-connection блокирует повторное подключение к серверу БД и позволяет только отключиться от сервера БД. На скриншоте представлен интерфейс приложения после выполнения описанных действий.

Перейти к решению задачи.

Урок 10. Справочники базы данных

Задание. Необходимо из готовых модулей собрать приложение, позволяющее подключиться к серверу БД и управлять справочниками единиц измерения, валют и курсов валют ЦБ. Для старта бандлов используйте главное меню.

Данный урок является продолжением предыдущего урока, где уже выполнено подключение к серверу БД и просмотр табличных объектов. Необходимо дополнительно подключить 3 бандла, реализующих функции справочников БД.

Перейти к решению задачи.

3. Разработка бандлов

В разделе рассматриваются вопросы создания новых интерфейсных бандлов, т.е. бандлов, созданных по технологии OSGi и включающих интерфейсные формы. В качестве основы данных модулей будем использовать базовые модули платформы JaBricks, которые позволяют значительно сократить трудозатраты. Создадим три интерфейсных бандла, формирующих главный фрейм, диалоговое окно и панель.

Урок 11. Главный фрейм

Задание. Необходимо создать главный фрейм приложения с использованием проектного шаблона templ-jframe.

Перейти к решению задачи.

Урок 12. Диалоговое окно JDialog

Задание. Необходимо создать интерфейсный бандл, открывающего диалоговое окно JDialog, с использованием проектного шаблона templ-jdialog.

Перейти к решению задачи.

Урок 13. Интерфейсная панель JPanel

Задание. Необходимо создать интерфейсный бандл, формирующего панель JPanel, с использованием проектного шаблона templ-jpanel. Интерфейсную панель разместить в контейнере главного фрейма.

Перейти к решению задачи.

Урок 14. Интеграция бандлов

Задание. Необходимо с использованием базового модуля 'base-iniversal' создать бандл, позволяющий формировать интерфейс как в отдельном диалоговом окне, так и в панели главного фрейма, а также позволяющий интегрировать свою форму в интерфейс другого бандла.

На скриншоте представлен бандл templ-universal версии 2.0.0, разместивший свою интерфейсную панель в главный фрейм приложения. На переднем фоне этот же бандл, но собранный с версией 2.0.1, создал свой интерфейс уже в виде всплывающего диалогового окна.

Перейти к решению задачи.

4. Создание диаграмм

В разделе рассматриваются вопросы создания различных видов диаграмм с использованием библиотеки osgi-jfreechart-1.0.19.jar и утилиты util-jfreechart.

Урок 15. Столбчатые и круговые диаграммы

Задание. Необходимо создать интерфейсный бандл представления столбчатых и круговых диаграмм с использованием библиотеки osgi-jfreechart и утилиты util-jfreechart.

Перейти к решению задачи.

Урок 16. Временны́е и линейные диаграмм

Задание. Необходимо создать интерфейсный бандл представления временны́ (линейных) и кусочно-линейных диаграмм с использованием библиотеки osgi-jfreechart и утилиты util-jfreechart.

Перейти к решению задачи.

5. Дополнительные возможности

Урок 17. Динамический старт бандлов

Задание. Определить конфигурацию приложения с динамической загрузкой интерфейсных бандлов. В качестве прототипа приложения использовать конфигурацию 4-го урока.

Перейти к решению задачи.

  Рейтинг@Mail.ru