Афоризм
Большому кораблю – большие в трюме крысы.
Наталья Резник
Последние статьи

 • RawContacts
Необработанные контакты в Android
 • javax.crypto.Cypher
Cимметричное шифрование и дешифрирование
 • Random, Math.random
Генерация случайных чисел
 • Компонент JDatePicker
Описание и пример компонента JDatePicker
 • Компонент Tree
Описание и пример дерева Tree библиотеки base-gui
 • Grid с навигатором
Описание и пример Gridp с навигатором
 • Компонент Grid
Описание и пример Grid библиотеки base-gui
 • Библиотека base-gui
Описание компонентов библиотеки base-gui
 • Оператор SELECT
Использование SQL-оператора SELECT
в помощь разработчикам Swing-приложений

Описание библиотеки base-gui

Библиотека base-gui, предназначенная для формирования графического интерфейса desktop'ных Swing-приложений, выполнена по технологии OSGi и содержит следующий набор визуальных компонентов :

Компонент Описание
Grid Табличный компонент представления ограниченного количества записей в интерфейсе приложения. API Grid позволяет управлять записями (добавлять, обновлять, удалять) и определить в таблице редактируемую колонку с компонентом JCheckBox для выделения записей.
Gridp Табличный компонент с панелью навигации предназначен для постраничного разбиения записей и представления в интерфейсе неограниченного количества записей. API Gridp позволяет управлять записями (добавлять, обновлять, удалять).
Tree Компонент дерева представляет в интерфейсе приложения иерархическую многоуровневую структуру записей. API дерева (ITree) позволяет добавлять, обновлять и удалять записи в дереве. При выделении записи вызывается callback-функция.
JDatePickerКомпонент представляет текстовое поле с кнопкой, при нажатии на которую открывается окно с календарем для выбора даты. Интерфейс календаря локализован для русского, английского и немецкого языков, и позволяет определить первый день недели [Воскресенье, Понедельник].
IntegerField
FloatField
DoubleField
Компоненты представления числовых значений.

С лицензионным соглашением использования данной библиотеки Вы можете познакомиться здесь.

Примеры использования библиотеки base-gui демонстрируют возможности визуальных компонентов и включают исходные коды.

Структура проекта

На следующем скриншоте представлена структура maven-проекта библиотеки base-gui в IDE Eclipse.

Описание библиотеки

Список классов, интерфейсов и ресурсов библиотеки представлен в таблице по-пакетно :

org.jabricks.basegui : активатор модуля
BaseGuiActivatorактиватор модуля
org.jabricks.basegui.numberfields : компоненты числовых значений
DoubleFieldкласс представления числовых значений типа Double
FloatFieldкласс представления числовых значений типа Float
IntegerFieldкласс представления числовых значений типа Integer
org.jabricks.basegui.grid : таблица Grid
IGrid интерфейс методов таблицы
Grid компонент таблицы, реализующий интерфейс IGrid
GridModel модель данных таблицы, расширяющая свойства класса AbstractTableModel
CheckBoxCellEditorредактор логического значения ячейки таблицы, расширяющий (extends) свойства класса DefaultCellEditor
BooleanListener слушатель изменений логических значений ячеек, реализующий (implements) интерфейс TableModelListener
org.jabricks.basegui.gridp : таблица Gridp с панелью навигации
IGridp интерфейс методов таблицы с панелью навигации
Gridp компонент таблицы с панелью навигации, реализующий интерфейс IGrid
GridpModel модель данных таблицы с панелью навигации, расширяющая свойства класса AbstractTableModel
IPaginator интерфейс описания методов панели навигации
Paginator компонент панели навигации
PaginatorConfigконфигуратор панели навигации
org.jabricks.basegui.tree : дерево Tree
ITree интерфейс методов дерева Tree
ITreeListener интерфейс методов слушателя Tree
Tree компонент Tree, реализующий функции интерфейса ITree
TreeRecord базовый класс представления записей в дереве Tree
Константы : org.jabricks.basegui.interface
IBaseGuiConstantsинтерфейс описания констант
org.jabricks.basegui.renderers : визуализаторы табличных значений
BaseRenderer базовый класс для представления значений в ячейках таблицы
BooleanRenderer класс для представления логических значений в ячейках таблицы
DateRenderer класс для представления значений типа Date в ячейках таблицы
DoubleRenderer класс для представления значений типа Double в ячейках таблицы
FloatRenderer класс для представления значений типа Float в ячейках таблицы
IntegerRenderer класс для представления значений типа Integer в ячейках таблицы
StringRenderer класс для представления значений типа String в ячейках таблицы
TimeRenderer класс для представления значений типа Time в ячейках таблицы
TimestampRendererкласс для представления значений типа Timestamp в ячейках таблицы
org.jdatepicker.* : компонент JDdatePicker для выбора даты из календаря
JDdatePickerкомпонент определения даты с возможностью использования календаря в отдельном окне
resources : ресурсы модуля
imagesизображения, используемые в панели навигатора табличного компонента Gridp и при отображении записей в иерархической структуре дерева Tree
propertiesлокализованные надписи для панели навигатора табличного компонента Gridp

Активатор модуля, org.jabricks.basegui

Активатор модуля BaseGuiActivator включает «пустые» методы start и stop. Основная функция активатора связана с формированием бандла (bundle) по технологии OSGI.

Компоненты числовых значений, org.jabricks.basegui.numberfields

Компоненты представления числовых значений в интерфейсе приложения : IntegerField, FloatField, DoubleField. Описание компонентов представлено на странице Числовые компоненты.

Таблица Grid, org.jabricks.basegui.grid

Табличный компонент предназначен для представления ограниченного количества записей в интерфейсе приложения. Компонент таблицы локализован и позволяет без «перезагрузки» формы определить заголовки колонок таблицы согласно текущему значению языка локализации. Классы визуализаторов позволяют настроить представление значений разных типов в ячейках таблицы. API Grid позволяет управлять записями (добавлять, обновлять, удалять) и организовать в таблице редактируемую колонку с компонентом JCheckBox для выделения записей. Использование таблицы в java-приложении рассмотрено на странице описания примера Grid. Создание редактируемой колонки с возможностью выделения записей рассмотрено в примере JCheckBox в таблице.

Таблица Gridp с панелью навигации, org.jabricks.basegui.gridp

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

Компонент Gridp отображает в таблице набор данных в виде одной страницы. API Gridp позволяет управлять записями (добавлять, обновлять, удалять) и включает методы, вызываемые компонентом для перемещения по страницам. Разработчик должен переопределить данные методы для чтения записей определенной страницы в хранилище (сервере БД).

Пример Gridp с панелью навигации демонстрирует возможности данного компонента и включает исходные коды.

Дерево Tree, org.jabricks.basegui.tree

Компонент дерева Tree позволяет представить в интерфейсе приложения иерархическую многоуровневую структуру записей, основой которых является класс TreeRecord. API дерева (ITree) позволяет добавлять, обновлять и удалять записи в дереве. При выделении записи в дереве вызывается callback-функция интерфейса ITreeListener, передающая родителю выбранный объект. Подробное описание визуального компонента Tree представлено на странице API Tree. Использование дерева Tree в java-приложении рассмотрено на странице описания примера Tree.

Константы, org.jabricks.basegui.interface

Интерфейс IBaseGuiConstants включает набор констант для формирования интерфейса и организации межмодульного взаимодействия бандлов OSGi-приложениий по технологии «публикация/подписка».

Данный набор констант привязан к определенным OSGi-приложениям, для которых разработана эта интерфейсная библиотека (бандл/bundle), и не представляет интереса для Ваших разработок; поэтому в описании подробности не раскрываются.

Визуализаторы табличных значений, org.jabricks.basegui.renderers

Используемые по умолчанию визуализаторы записей таблиц Grid и Gridp реализуют (implements) функции интерфейса TableCellRenderer и расширяют (extends) свойства метки типа JLabel. Это позволяет выравнивать значения в колонках для каждого типа либо по левому/правому краю, либо по центру. Кроме этого, визуализаторы позволяют определить подсветку выделенных строк/ячеек таблиц.

Разработчик может подключить собственный визуализатор с индивидуальными настройками, как это представлено в примере Grid.

Компонент JDdatePicker для выбора даты из календаря, org.jdatepicker.*

Компонент JDatePicker представляет текстовое поле с кнопкой, при нажатии на которую открывается окно с календарем для выбора даты. В основе компонента лежит код, созданный группой разработчиков Juan Heyns, JC Oosthuizen, Yue Huang. Доработанный компонент локализован для русского, английского и немецкого языков, позволяет определить первый день недели [Воскресенье, Понедельник]. Кроме этого, выпадающее окно календаря автоматически привязывается к правому/левому краю текстового поля даты в зависимости от расположения компонента на экране.

Подробное описание компонента представлено на странице API JDatePicker. Использование компонента в java-приложении рассмотрено на странице описания примера JDatePicker.

Ресурсы модуля, resources

Ресурсы модуля base-gui.jar в виде файлов изображений (*.png) и файлов свойств (*.properties) располагаются в директории resources/images и resources/properties. Файлы изображений используются в панели навигации табличного компонента Gridp, в компоненте даты JDatePicker, при отображении записей в иерархической структуре дерева Tree. Файлы свойств хранят локализованные надписи 3-х языков («ru» русский, «en» английский, «de» немецкий) для панели навигации таблицы Gridp и компонента даты JDatePicker.

API компонента Tree включает методы для использования других/собственных изображений узлов дерева.

  Рейтинг@Mail.ru