Събития и слушателите

Събитие - е обект, който описва източник на промяна в състоянието, с които той е свързан. Един пример за едно събитие, в което е замесен потребителя, са натискане на бутона, изберете елемент от списъка, вход характер от клавиатурата и т.н. Събитието може да се случи без взаимодействие с потребителя при използване на таймера.

Слушател на слушател - тя ще ви извести, обект събитие. Слушателят е в състояние да отговори на конкретен източник на събитието трябва да се регистрират с тях, т.е. свързана към източника. Слушател трябва да изпълни някои методи за получаване и обработка на известия за събития.

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

След обработка на събития връща. По този начин, за лечение на събития, причинени само тези студенти, които го "подписан", т.е. Те са записани източник.

Видове събития и слушатели

Пакетът определя java.awt.event слушателя интерфейси за всеки от специфичните видове събития в него (например, за събития определени MouseEvent слушателите два интерфейса: MouseListener и MouseMotionListener). Всички на събития интерфейси са разширения java.util.EventListener интерфейс. Този интерфейс не се определя от всеки един от методите, но той играе ролята на база интерфейс, която ясно определя всички приематели на събития, как takovye.T.e. слушателя е наследен от интерфейса на EventListener и има за цел да се справи с определен тип събитие. Така приемател включва един или повече методи, които приемат обект събитие като един параметър и позоваване на специфични случаи.

Интерфейс на слушател събитие слушател може да включва няколко метода. Например, един клас от събития, подобни на MouseEvent, описва няколко събития, свързани с мишка събития като натискане и отпускане на бутона на мишката. Тези събития предизвикват различни методи, съответстващи на слушателя.

Таблица I показва определени събития в java.awt.event видове пакети съответните слушателите на тях, както и методите, дефинирани във всяка слушател интерфейс.

Коренът на йерархията на класовете на събития е суперкласа EventObject пакет java.util. Този клас включва два метода: getSource (). се връща на източника на събитието, както и ToString (). Връща низ еквивалентни събития. За да разберете кой обект се е случило събитието, обадете getSource () метод връща обект. Следователно същият слушателя може да бъде свързан към различни източници.

Класове адаптери, адаптер

За всеки интерфейс, който съдържа няколко методи, java.awt.event пакет определя клас адаптер слушателите адаптер събития. Когато само една или две от такъв метод, понякога е по-лесно да получите клас-адаптер подклас от прилагане на интерфейса себе си. При използване на адаптера изисква замени само методите, които са необходими, както и всички техники, необходими, за да се определи дали прякото изпълнение на интерфейса, включително излишна в тази програма.

Предварително дефинирани класове адаптери се наричат ​​също и интерфейсите, които те изпълняват. Но в тези имена се заменя със адаптер Слушател; например MouseAdapter. MouseMotionAdapter. WindowAdapter т.н.

Описание адаптер клас действие с мишка, MouseAdapter

само седем класа адаптери. Освен вече споменатите три класа е ComponentAdapter класове, ContainerAdapter, FocusAdapter и KeyAdapter.

В следващата таблица са визуалната компоненти AWT пакета и събитията, които те генерират.

Прозорецът беше отворен, затворен, представени под формата на пиктограма, възстановена или изисква възстановяване

Пример на ActionListener на слушател

Интерфейсът на приложение е показан на Фигура.

Събития и слушателите

Събитието се нарича автоматично при настъпване на определени условия. Но вие можете да създадете причина софтуер (пожар събитие) събитие и.

В предишния пример беше изменен във вътрешния клас TestActionListener, в резултат на натискане button3 бутона създаден и се позова на ново събитие.

След натискане на бутон button3 следната информация ще бъде показана в конзолата: