что такое frames в java

Фреймы и графика для Java

В Java окно верхнего уровня (не содержащееся в другом окне) называется фреймом. В отличие от апплетов графические приложения, расширяющие класс java.awt.Frame или его подкласс jawax.swing.JFrame, не нуждаются в браузере. Для создания графического интерфейса приложения необходимо предоставить ему в качестве окна для вывода объект Frame или JFrame, в который будут помещаться используемые приложением компоненты GUI (Graphics User Interface). Большинство своих методов класс Frame наследует по иерархии от классов Component, Container и Window. Класс JFrame из библиотеки Swing является подклассом класса Frame.

Такое приложение запускается с помощью метода main() и само отвечает за свое отображение в окне Frame или JFrame.

/* пример # 9 :простейший фрейм – овалы и дуги : FrameDemo.java */

public class FrameDemo extends JFrame <

private String msg = «My Windows-Application»;

public void paint(Graphics g) <

g.drawString(msg, 59, diam + 52);

g.drawLine(59, diam + 56, 190, diam + 56);

public void drawSphere(Graphics g, int diam) <

Похожие посты:

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

2 коммент. »

У меня эта програмка не сработала – выдала массу ошибок что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

У меня тоже не работало.
Чтобы заработало, я заменил в исходнике знаки тире на минусы. Заработало. Хоть и не идеально.

Источник

JFrame в Java

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Введение в JFrame в Java

JFrame также известен как контейнер верхнего уровня Swing. Swing ссылается на GUI-инструмент виджета для создания приложений в JAVA. Качели легкие и независимые. Класс JFrame в приложении может быть создан следующим образом

Открытый класс JFrame расширяет Frame реализует WindowConstants, Accessible, RootPaneContainer

Конструктор JFrame

Конструктор JFrame и его описания приведены ниже.

Методы JFrame

Класс JFrame предоставляет некоторые методы, которые играют важную роль в работе с JFrame.

Примеры JFrame в Java

Вот следующие примеры упоминания ниже

Пример № 1

Пожалуйста, смотрите ниже приведенный пример

import javax.swing.*;
public class demoJFrame extends JFrame(
JFrame frame;
demoJFrame()(
setTitle(«A Sample JFrame Window»);
JButton button = new JButton(«click»);
button.setBounds(100, 100, 115, 55);
add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLayout(null);
setVisible(true);
)
public static void main(String() args)(
new demoJFrame();
)
)

В приведенном выше примере библиотека свинга импортируется для включения различных классов для работы с Frame & событиями. На скриншоте ниже кадр создается с использованием классов свинг-классов JFrame.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Пример № 2

В этом примере используется несколько методов классов JFrame, Layout & Events для создания форм внутри фрейма.

import javax.swing.*;
import java.awt.event.*;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
public class JFrameDemo(
public static void main(String() args)(
// Create frame with title Registration Demo
JFrame frame= new JFrame();
frame.setTitle(«JFrame Based Contact Form»);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel headingPanel = new JPanel();
JLabel headingLabel = new JLabel(«Contact Us Panel»);
headingPanel.add(headingLabel);
JPanel panel = new JPanel(new GridBagLayout());
// Constraints for the layout
GridBagConstraints constr = new GridBagConstraints();
constr.insets = new Insets(5, 5, 5, 5);
constr.anchor = GridBagConstraints.WEST;
// Setting initial grid values to 0, 0
constr.gridx=0;
constr.gridy=0;
JLabel nameLabel = new JLabel(«Enter your name :»);
JLabel emailLabel = new JLabel(«Enter your email :»);
JLabel phoneLabel = new JLabel(«Enter your phone :»);
JLabel msgLabel = new JLabel(«Message :»);
JTextField nameInput = new JTextField(20);
JTextField emailInput = new JTextField(20);
JTextField phoneInput = new JTextField(20);
JTextArea textArea = new JTextArea(5, 20);
panel.add(nameLabel, constr);
constr.gridx=1;
panel.add(nameInput, constr);
constr.gridx=0; constr.gridy=1;
panel.add(emailLabel, constr);
constr.gridx=1;
panel.add(emailInput, constr);
constr.gridx=0; constr.gridy=2;
panel.add(phoneLabel, constr);
constr.gridx=1;
panel.add(phoneInput, constr);
constr.gridx=0; constr.gridy=3;
panel.add(msgLabel, constr);
constr.gridx=1;
panel.add(textArea, constr);
constr.gridx=0; constr.gridy=4;
constr.gridwidth = 2;
constr.anchor = GridBagConstraints.CENTER;
// Button with text «Register»
JButton button = new JButton(«Submit»);
// add a listener to button
button.addActionListener(new ActionListener()
(
public void actionPerformed(ActionEvent e)
(
headingLabel.setText(«Thanks for Contacting us. We’ll get back to you shortly.»);
nameInput.setText(«»);
emailInput.setText(«»);
phoneInput.setText(«»);
textArea.setText(«»);
)
));
panel.add(button, constr);
mainPanel.add(headingPanel);
mainPanel.add(panel);
frame.add(mainPanel);
frame.pack();
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
)
)

В приведенном выше примере оконная рама создается с использованием JFrame. & создание элементов с использованием методов класса JPanel (). другие библиотеки используются для макета и событий. Ниже приведен скриншот, прикрепленный после компиляции и запуска кода Java.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Рекомендуемые статьи

Источник

Как Сделать Фреймы (Главные окна)

Фрейм, реализованный как экземпляр JFrame class, окно, которое имеет художественные оформления, такие как граница, title, и поддерживает компоненты кнопки, которые закрывают или представляют окно в виде значка. Приложения с GUI обычно включают по крайней мере один фрейм. Апплеты иногда используют фреймы, также.

Создание и Показ Фреймов

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Следующий FrameDemo кодируйте шоу, как создать и установить фрейм.

Вот некоторые детали о коде:

    setDefaultLookAndFeelDecorated(true) requests that any subsequently created frames have window decorations provided by the look and feel, and not by the window system. For details, see Specifying Window Decorations.

См. Отвечающие Закрывающие окно События для получения дополнительной информации.

Для фреймов, у которых есть меню, Вы обычно добавляли бы строку меню к фрейму, здесь используя setJMenuBar метод. См., Как Использовать Меню для деталей.

Этот пример не устанавливает расположение фрейма, но легко сделать так использование любого setLocationRelativeTo или setLocation метод. Например, следующий код центрирует экранный фрейм:

Определение Художественных оформлений Окна

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

Помимо определения, кто обеспечивает художественные оформления окна, можно также определить, какой значок используется, чтобы представить окно. Точно то, как этот значок используется, зависит от оконной системы или стили, который обеспечивает художественные оформления окна. Если оконная система поддерживает минимизацию, то значок используется, чтобы представить минимизированное окно. Большинство оконных систем или взгляда и чувств также выводят на экран значок в художественных оформлениях окна. Типичный размер значка 16×16, пиксели, но некоторые оконные системы используют другие размеры.

Следующие снимки показывают три фрейма, которые идентичны за исключением их художественных оформлений окна. Как можно сказать появлением кнопки в каждом фрейме, все три используют стиль Java. Первые художественные оформления использования, обеспеченные оконной системой, которые, оказывается, Microsoft Windows, но могли как легко быть любой другой системой, выполняющей платформу Java. Вторые и третьи художественные оформления окна использования обеспечили стилем Java. Третий фрейм использует художественные оформления окна стили Java, но имеет пользовательский значок.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в javaчто такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в javaчто такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java
Художественные оформления окна обеспечили стилемХудожественные оформления окна обеспечили оконной системойПользовательский значок; художественные оформления окна обеспечили стилем

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

Отвечание на Закрывающие окно События

По умолчанию, когда пользователь закрывает экранный фрейм, фрейм скрывается. Хотя невидимый, фрейм все еще существует, и программа может сделать его видимым снова. Если Вы хотите различное поведение, то Вы должны или зарегистрировать слушателя окна, который обрабатывает закрывающие окно события, или Вы должны определить значение по умолчанию близкое поведение, используя setDefaultCloseOperation метод. Можно даже сделать обоих.

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

API Фрейма

Поскольку каждый JFrame у объекта есть корневая область, у фреймов есть поддержка того, чтобы вставить ввод и нарисовать поведение перед дочерними элементами фрейма, размещая дочерние элементы в различные «уровни», и для строк меню Swing. Эти темы представляются в Использовании Высокоуровневых Контейнеров и объясняются подробно в том, Как Использовать Корневые Области.

API для того, чтобы использовать фреймы попадает в эти категории:

Примеры то Использование Фреймы

Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.

Источник

Как создать графический интерфейс с примерами Swing на Java

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

Объединение всех этих компонентов создает графический интерфейс пользователя.

Что такое Swing в Java?

Swing в Java – это легкий инструментарий с графическим интерфейсом, который имеет широкий спектр виджетов для создания оптимизированных оконных приложений. Это часть JFC (Java Foundation Classes). Он построен на основе AWT API и полностью написан на Java. Он не зависит от платформы в отличие от AWT и имеет легкие компоненты.

Создавать приложения становится проще, поскольку у нас уже есть компоненты GUI, такие как кнопка, флажок и т. д.

Контейнерный класс

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

Ниже приведены три типа контейнерных классов:

Разница между AWT и Swing

Иерархия

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Объяснение: Все компоненты в свинге, такие как JButton, JComboBox, JList, JLabel, унаследованы от класса JComponent, который можно добавить в классы контейнера.

Контейнеры – это окна, такие как рамка и диалоговые окна. Основные компоненты являются строительными блоками любого графического приложения. Такие методы, как setLayout, переопределяют макет по умолчанию в каждом контейнере. Контейнеры, такие как JFrame и JDialog, могут добавлять только компонент к себе. Ниже приведены несколько компонентов с примерами, чтобы понять, как мы можем их использовать.

JButton Class

Он используется для создания помеченной кнопки. Использование ActionListener приведет к некоторым действиям при нажатии кнопки. Он наследует класс AbstractButton и не зависит от платформы.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JTextField Class

Он наследует класс JTextComponent и используется для редактирования однострочного текста.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JScrollBar Class

Он используется для добавления полосы прокрутки, как горизонтальной, так и вертикальной.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JPanel Class

Он наследует класс JComponent и предоставляет пространство для приложения, которое может присоединить любой другой компонент.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JMenu Class

Он наследует класс JMenuItem и является компонентом выпадающего меню, которое отображается из строки меню.

Вывод:
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Класс JList

Он наследует класс JComponent, объект класса JList представляет список текстовых элементов.

Вывод:
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JLabel Class

Используется для размещения текста в контейнере. Он также наследует класс JComponent.

Вывод:
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

JComboBox Class

Он наследует класс JComponent и используется для отображения всплывающего меню выбора.

Вывод:
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Для размещения компонентов внутри контейнера мы используем менеджер макета. Ниже приведены несколько менеджеров макетов:

Макет границы

Менеджер по умолчанию для каждого JFrame – BorderLayout. Он размещает компоненты в пяти местах: сверху, снизу, слева, справа и по центру.
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Макет потока

FlowLayout просто кладет компоненты в ряд один за другим, это менеджер компоновки по умолчанию для каждого JPanel.
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

GridBag Layout

GridBagLayout размещает компоненты в сетке, что позволяет компонентам охватывать более одной ячейки.
что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Пример: фрейм чата

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

Это простой пример создания GUI с использованием Swing в Java.

Средняя оценка / 5. Количество голосов:

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Источник

Базовый фрейм JFrame

Базовый фрейм base-jframe, выполненный по технологии OSGi, позволяет формировать графический интерфейс главного фрейма приложения JaBricks в виде объекта типа JFrame библиотеки Swing и осуществлять диспетчеризацию управления другими программными модулями приложения. Основные функциональные свойства базового фрейма JaBricks обеспечивают :

Стиль представления

Параметры интерфейса фрейма, определяющие стиль представления компонентов и выделения в них записей, можно настроить без перекомпиляции платформы. Настройки стилей фрейма хранятся в файле configuration/style.txt в формате «ключ=значение». Данный файл создается автоматически с записями используемых стилей по умолчанию.

Меню и панель инструментов

Интерфейс приложения может включать как главное меню, так и панель инструментов. Структуру меню и панели инструментов определяет разработчик в конфигурации приложения. При выборе пунктов меню и/или нажатии на кнопках панели инструментов стартуют связанные с ними бандлы приложения. Таким образом, главный фрейм организует запуск бандлов приложения.

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

При старте приложения базовый фрейм получает от модуля ресурсов объект локализации Locale, в соответствии с которым определяются наименования пунктов меню и подсказки кнопок панели инструментов. Кроме этого, базовый фрейм может быть подписан на событие изменения языка локализации в режиме run-time. При получении сообщения об изменении языка локализации заголовок фрейма, пункты главного меню и подсказки кнопок панели инструментов локализуются согласно значению новой Locale.

Логирование сообщений

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

Контейнер фрейма

Графические бандлы приложения могут создавать интерфейс двух типов : в виде отдельного всплывающего диалогового окна типа JDialog и в виде панели типа JPanel, встраиваемую в контейнер фрейма приложения JFrame. Поскольку бандлы могут общаться друг с другом только с помощью сообщений, то взаимодействие бандлов с базовым фреймом осуществляется посредством механизма публикации/подписки. Базовый фрейм подписывается на запрос контейнера, а бандлы, использующие базовый фрейм для формирования своей интерфейсной составляющей, отправляют запросы на получение контейнера фрейма. При поступлении такого сообщения фрейм отправляет соответствующему бандлу контейнер, в котором бандл размещает свой графический интерфейс; предыдущую интерфейсную панель базовый фрейм удаляет из контейнера, а связанный с панелью бандл останавливает.

Завершение работы приложения

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

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

Структура базового фрейма

На следующем скриншоте представлена структура базового фрейма в виде проекта в IDE Eclipse.

что такое frames в java. Смотреть фото что такое frames в java. Смотреть картинку что такое frames в java. Картинка про что такое frames в java. Фото что такое frames в java

В состав базового фрейма входят :

Базовые модули
JBFrameActivatorкласс активатора базового фрейма
JBFrameкласс интерфейсного фрейма JFrame
Модули публикации и подписки
ConnectSubscriberкласс подписки на сообщения подключения к серверу БД или отключения от сервера БД
ContainerSubscriberкласс подписки на сообщение запроса контейнера JFrame
EventPublisherкласс публикации сообщениий главного фрейма
LocaleSubscriberкласс подписки на сообщение изменения языка локализации приложения Locale
StartTimeSubscriberкласс подписки на запрос времени старта программы

Класс активатора базового фрейма, JBFrameActivator

Класс активатора включает переменные и методы. Ниже в табличном виде представлены переменные и методы с модификаторами public и protected, которые будут доступны в наследниках класса.

Переменные активатора базового фрейма

В следующей таблице представлены переменные активатора базового фрейма. Сервис logService позволяет логировать сообщения. Сервисы фрейма (service_locale, service_connect, service_container, service_starttime) используются для «подписки» на определенные сообщения. Слушатели событий (menuListener, toolbarListener, windowListener) реагируют на связанные с ними события. Все переменные доступны в наследниках. Инициализация сервисов и слушателей выполняется методами, представленными ниже.

МодификаторТип переменнойНаименованиеОписание
protectedBundleContextcontextКонтекст бандла, позволяет получить информацию о всем модулях приложения согласно спецификации OSGi
protectedJFrameframeФрейм приложения
protectedlongstart_timeВремя старта приложения
protectedLogServicelogServiceСервис логирования сообщений
protectedServiceRegistrationservice_localeСервис локализации
protectedServiceRegistrationservice_connectСервис подписки на подключение к серверу БД (или отключения)
protectedServiceRegistrationservice_containerСервис подписки на запрос контейнера фрейма (JFrame.getContentPane)
protectedServiceRegistrationservice_starttimeСервис подписки на запрос времени старта приложеня
protectedActionListenermenuListenerСлушатель событий вызова меню
protectedActionListenertoolbarListenerСлушатель событий нажатия кнопки панели инструментов
protectedWindowListenerwindowListenerСлушатель событий окна

Методы активатора базового фрейма

В таблице представлены методы, определенные интерфейсами BundleActivator, ServiceListener и реализующие платформу Jabricks. Эти методы будут доступны в наследниках класса.

МодификаторМетодОписание
Методы интерфейса BundleActivator
publicvoid start(BundleContext context) throws ExceptionМетод вызывается фреймворком OSGi при старте бандла
publicvoid stop(BundleContext context) throws ExceptionМетод вызывается фреймворком OSGi при останове бандла
Метод интерфейса ServiceListener
publicvoid serviceChanged(ServiceEvent event)Метод вызывается фреймворком OSGi при регистрации/разрегистрации сервиса
Методы платформы Jabricks
publicBundleContext getBundleContext()Метод получения бандла базовго фрейма
publicvoid logMessage(int level, String message)Метод логирования сообщений
protectedvoid createMenuListener()Метод создания слушателя меню
protectedvoid createToolbarListener()Метод создания слушателя панели инструментов
protectedvoid createWindowListener()Метод создания слушателя окна фрейма
protectedvoid createConnectSubscriber()Метод создания подписчика на событие подключения к серверу и отключения от сервера БД
protectedvoid createLocaleSubscriber()Метод создания подписчика на событие смены языка локализации
protectedvoid createJFrameSubscriber()Метод создания подписчика на запрос контейнера фрейма
publicvoid sendContainerEvent(final String symbolicName,
final String version,
final String component )
Метод отправки сообщения с контейнером фрейма бандлу с соответствующими значениями symbolicName и version
publicvoid sendStartTimeEvent()Метод отправки сообщения с временем старта приложения
publicvoid changeLocale(Locale locale)Метод изменения локализованных надписей интерфейса согласно текущей Local
publicvoid changeConnect()Метод отработки события подключения или отключения от сервера БД
protectedvoid closeConnectionSQL()Метод закрытия соедининия с сервером БД
protectedvoid saveJFrameData()Метод сохранения данных фрейма
protectedvoid stop()Метод остановки бандла

Примечание :
1. Активатор базового фрейма JBFrameActivator включает закрытые методы подключения с сервису логирования фреймворка и завершения его работы. Эти методы вызывается автоматически при старте бандла и при закрытии окна фрейма JFrame. Открытый метод logMessage обеспечивает логирование сообщений.
2. При старте бандла автоматически стартует подписчик (StartTimeSubscriber) на сообщение запроса «времени старта» приложения. При поступлении данного запроса вызывается метод активатора sendStartTimeEvent(). При останове бандла данный сервис подписки также будет остановлен.
3. Завершить работу фрейма можно либо по нажатию на одной из кнопок панели инструментов или выбора пункта меню, либо нажатии на кнопку закрытия окна (правый верхний угол). Слушатели соответствующих событий вызывают метод stop, который завершает работу всех подписчиков, отключается от сервиса логирования и останавливает фреймворк.
4. Вызываемый при останове бандла метод saveJFrameData можно использовать для сохранения данных главного фрейма во внешнем файле, чтобы при очередном старте их можно было бы восстановить.

Листинг базового активатора фрейма, JBFrameActivator

Для реализации функций подписки и публикации активатор использует константные значения интерфейса IWidgetsConstants библиотеки gui-widgets. В листинге активатора для наглядности представления приведены переменные и методы (без кода).

Для сохранения данных бандла во внешнем файле необходимо переопределить метод saveJFrameData(), в котором вызывать одноименный метод интерфейсного класса JBFrame.

Класс базового фрейма JBFrame

В таблице представлены доступные методы интерфейсного класса базового фрейма JBFrame :

МодификаторМетодОписание
publicvoid createJFrame()метод создания фрейма JFrame
publicvoid createJFrame (ActionListener mListener, ActionListener tListener)метод создания фрейма JFrame
publicvoid saveJFrameData()Метод сохранения данных фрейма
publicvoid createMenu (ActionListener mListener)Метод создания главного меню
publicvoid createToolbar(ActionListener tListener)Методы создания панели инструментов
publicMenuService getMenuService()Метод получения объекта главного меню
publicToolbarService getToolbarService()Метод получения объекта панели инструментов
publicvoid changeConnect (Properties props)Методы обработки события подключения к серверу БД
publicvoid changeLocale (Locale locale)Методы обработки событий изм енения языка локализации
publicvoid formCentering(int width, int height)Центрирование фрейма
protectedvoid writeDocument(Document document, String path)Метод сохранения данных фрейма в формате XML
protectedDocument readJFrameData()Метод чтения данных фрейма

Для сохранения данных активатор должен вызвать метод saveJFrameData, в котором выполняется упаковка данных в объект типа Document, после чего вызывается метод writeDocument для сохранения созданного документа (doc) в файл (path). Переопределив метод writeDocument Вы можете внести изменения в содержимое doc и сохранить собственные данные, которые при следующем старте бандла можно будет восстановить. Для этого следует использовать метод readJFrameData().

Примечание : метод readJFrameData восстанавливает размеры окна фрейма и возвращает результат типа Document (XML).

Классы подписки и публикации

Классы пакета com.bundle.basejframe.pubsub, представленные в скриншоте проекта, используются методами фреймворка для реализации механизма подписки и публикации.

ConnectSubscriberКласс используется методом createConnectSubscriber для создания подписки на сообщения подключения к серверу БД и отключения от сервера БД. При поступлении данного типа сообщения будет вызван метод активатора базового фрейма changeConnect.

LocaleSubscriberКласс используется методом createLocaleSubscriber для создания подписки на сообщения изменения локализации интерфейса базового фрейма. В базовом фрейме локализуются заголовок, пункты меню и подсказки панели инструментов. При поступлении сообщения с новой Locale будет вызван метод активатора базового фрейма changeLocale.
ContainerSubscriberКласс используется методом createJFrameSubscriber для создания подписки на запрос контейнера фрейма. При поступлении от бандла сообщения данного типа вызывается метод активатора sendContainerEvent(), отправляющий контейнер бандлу.
StartTimeSubscriberКласс подписки на сообщение с запросом «времени старта» программы. При поступлении от бандла сообщения «jabricks/StartTime/Request» вызывается метод активатора sendContainerEvent(), отправляющий ответ «jabricks/StartTime/Response» с включением в него значения start_time. Подписчик StartTimeSubscriber стартует автоматически при старте бандла.
EventPublisherКласс отправки главным фреймом сообщений содержит 2 метода. Метод sendContainerEvent включает в отправляемое сообщение «jabricks/Container/Response» вместе с контейнером SymbolicName и Version бандла, запросившего контейнер. Метод sendStartTimeEvent отправляет сообщение «jabricks/StartTime/Response» вместе со временем старта программы.

Взаимодействие ContainerSubscriber и EventPublisher

Представленные в таблице экземпляры классов используются для взаимодействия с интерфейсными бандлами. Экземпляр класс ContainerSubscriber участвует в подписке на сообщения, отправляемые бандлами с запросом контейнера фрейма, для размещения своего интерфейсного компонента (например, JPanel). Получив такое сообщение, ContainerSubscriber вызывает метод активатора sendContainerEvent. В данном методе активатор останавливает деактивируемый бандл, удаляет из контейнера фрейма его интерфейсный компонент, регистрирует параметры нового бандла для размещения в контейнере фрейма и отправляет ему сообщение sendContainerEvent (класс EventPublisher) с контейнером.

Пример создания главного фрейма

Как было отмечено выше, базовый модуль base-jframe.jar следует использовать для создания главного фрейма приложения JaBricks. Пример создания главного фрейма приложения JaBricks представлен здесь.

Зависимости

Базовый фрейм base-jframe функционирует вместе со следующими бандлами приложения Jabricks :

gui-widgetsиспользуются глобальные константы приложения (интерфейс IWidgetsConstants)
util-resourcesиспользуется для получения внешних ресурсов
gui-menuиспользуется для формирования главного меню приложения
gui-toolbarиспользуется для формирования панели инструментов

Версии бандла

Версия 1.0.1 (base-jframe-1.0.1.jar)
Добавлена функция определения шрифта SWING-компонентов согласно значению, описанному в файле инициализации jabricks.ini. Пример описания шрифта в инициализационном файле :

Версия 1.0.2 (base-jframe-1.0.2.jar)
Добавлена функция динамической «загрузки» бандлов, имеющих опцию @dynamic при описании в файле «configuration/bundles.ini». Необходимо помнить, что все модули, связанные с динамически загружаемыми бандлами, должны быть заранее инсталлированы во фреймворк.

Чтобы использовать функцию динамической загрузки бандла необходимо использовать версию приложения jabricks-1.0.1.jar, либо jabricks.exe версии 1.0.1.3.

Скачать base-jframe

Рассмотренный на странице базовый модуль создания главного фрейма base-jframe упакован в архивный файл base-jframe-1.0.2.zip (31.1 Кб).

Подключение модуля к приложению

Для подключения модуля base-jframe в приложение Jabricks необходимо :

GAV параметры модуля base-jframe имеют следующие значения :

• groupId: org.jabricks.jframe
• artifactId: base-jframe
• version: 1.0.2

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *