Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Интерфейсы-слушатели и классы-адаптеры

Программист должен указать(зарегистрировать), какие объекты являются слушателями для всех объектов, которые могут запускать события addXxxListener(XxxEvent event), где Ххх — имя события.

У объекта-слушателя есть методы, которые обрабатывают посылаемое событие – обработчики событий (Event event) –например событие типа ActionEvent обрабатывается методом actionPerformed().

Базовые классы, на которых основана событийная модель, находятся в пакетах java.util java.awt java.awt.event

Слушателем может быть объект любого класса, удовлетворяющего определенному интерфейсу — интерфейсу-слушателю.

Все интерфейсы-слушатели порождены от базового интерфейса EventListener

Для каждого интерфейса слушателей событий, содержащего несколько методов, в пакете java.awt.event определен простой класс-адаптер,который обеспечивает пустое тело для каждого из методов соответствующего интерфейса

Когда нужен только один или два таких метода, иногда проще получить подкласс класса-адаптера, чем реализовать интерфейс самостоятельно.

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

Заранее определенные классы-адаптеры называются так же, как и интерфейсы, которые они реализуют но в этих названиях Listener заменяется на Adapter: MouseAdapter,

Адаптер-это класс, соответствующего классу слушателю, который реализует интерфейс, в котором все методы определены, но ничего не делают.

Объекты — источники событий должны быть объектами класса, который имеет методы для регистрации слушателя addXXXListener и отключения слушателя removeXXXListener.

Каждый конкретный класс — источник событий позволяет подключать к объекту-источнику только слушателей определенных типов, для которых в классе есть методы подключения addXXXListener

Работа модели событий основана на том, что при наступлении какого-либо события объект-источник вызывает определенные методы интерфейса XXXListener для всех зарегистрированных объектов-слушателей

Т.о., компонент-источник, в котором произошло событие, не занимается его обработкой.

Он обращается к экземпляру класса-слушателя, умеющего обрабатывать события, делегирует (delegate) ему полномочия по обработке

Такая схема получила название схемы делегирования (delegation).

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

С другой стороны, мы можем один обработчик назначить на прослушивание нескольких объектов-источников событий

Архитектура MVC (Model/View/Controller).*

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

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

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

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

При компонентном программировании используется архитектура Model/View/Controller (MVC)модель-вид-контроллер

1.модель хранит данные компонента и позволяет легко, не обращаясь к самому компоненту, изменять или получить эти данные

2.вид выводит данные на экран для представления их пользователю

3.контроллер определяет, как должны реагировать вид и данные модели в ответ на действия пользователя.

GUI общее понятия, принципы реализации в Java.*

GUI(graphic user interface)–часть программы которая взаимодействует с пользователем.

• Окна(Window)

• Меню(Menu)

• Кнопки(Button)

GUI получает данные от пользователя и передаёт в программу для обработки. В работе с GUI используются события и обработчики событий

Каждый компонент графического интерфейса имеет так называемый свой UI-представитель, который определяет вид данной компоненты в интерфейсе. Вид компонента классом UIManager, который использует 3 стандартных интерфейса: MetaltJava, Windows,Motif

Swing входит в состав набора библиотек Java Foudation Classes (JFC):

--Swing содержит компоненты для создания пользовательского интерфейса,

--Java2D-библиотека, позволяющая применять в приложении двухмерную графику,

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

--Drag’n’Drop-дополнение, позволяющее приложению взаимодействовать с приложениями операционной системы пользователя или другими Java приложениями с помощью технологии перетаскивания (drag and drop)

Графический пользовательский интерфейс(GUI) относится к системам, управляемым событиями(event driven systems)

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

while(readedByte!=-1){

outFile.write(readedByte);

readedByte = sequenceStream.read(); } }// try end

catch (IOException e) {

System.out.println("IOException: " +

e.getMessage());}

try {sequenceStream.close();}

catch(IOException e) { };

try{outFile.close();}

catch(IOException e){};

} // finally end

Для данного класса имеется конструктор для произвольного количества входных потоков, в нем используется абстрактное представление интерфейса Enumeration, который позволяет получить упорядоченный список объектов любого типа (только InputStream в данном случае)

Интерфейс Enumeration (методы hasMoreElements, nextElement) реализуют большинство классов-коллекций,Например класс Vector, ArrayList,LinkedList и др.




Дата добавления: 2015-09-11; просмотров: 87 | Поможем написать вашу работу | Нарушение авторских прав

Обработка исключений | Методы класса Throwable | Классы DataInputStream и DataOutputStream | Класс StreamTokenizer | Классы Reader и Writer. | Сериализация и десериализация объектов | Организация диалогов, класс JOptionPane и его методы | Панели и менеджеры раположения | Надписи, конструкторы и методы |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав