что такое 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. frownie. что такое frames в java фото. что такое frames в java-frownie. картинка что такое frames в java. картинка frownie.

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

Источник

JFrame в Java

что такое frames в java. jframe java. что такое frames в java фото. что такое frames в java-jframe java. картинка что такое frames в java. картинка jframe 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. jframe java 2. что такое frames в java фото. что такое frames в java-jframe java 2. картинка что такое frames в java. картинка jframe java 2.

Пример № 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. jframe java 3. что такое frames в java фото. что такое frames в java-jframe java 3. картинка что такое frames в java. картинка jframe java 3.

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

Источник

Базовый фрейм 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. base jframe. что такое frames в java фото. что такое frames в java-base jframe. картинка что такое frames в java. картинка base jframe.

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

Базовые модули
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 не будет опубликован. Обязательные поля помечены *