Оқиғаларды өңдеу
АУЫЛ ШАРУАШЫЛЫҚ МИНИСТРЛІГІ
С. СЕЙФУЛЛИН атындағы ҚАЗАҚ АГРОТЕХНИКАЛЫҚ УНИВЕРСИТИТІ
КАФЕДРА:Есептеу техникасы және бағдарламалық қамтамасыз ету
Курстық жұмыс
ПӘНІ Java тілінде бағдарламалау
ТАҚЫРЫБЫ: Оқиғаларды өңдеу
Орындаған: 1 курс студенті
Макашев Санжар
Тексерген: Байдалина А. Р.
Курстық жұмыс қорғауға жіберілді__________________________ ___
Нұр - Сұлтан 2019
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..1-3
1.Оқиғалар класстары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4-12
2.Оқиғаны тыңдаушы интерфейстері ... ... ... ... ... .. ... ... ... ..13-16
3. Оқиғаларды делегирлеу моделін пайдалану ... ... ... ... ... .17-23
a) Тышқан оқиғасын өңдеу
b) Пернетақта оқиғаларын өңдеу
4. Адаптерлер класстары ... ... ... ... ... ... ... ... ... ... ... ... ... ... 24-25
5.Ішкі класстар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .26-27
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ...28
Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... 29
Кіріспе
Оқиғаларды өңдеу барлық Java бағдарламалау үшін негіз болып табылады, себебі ол апплеттердің және графикалық пайдаланушы интерфейсі бар бағдарламалардың басқа түрлерінің (GUI) негізі болып табылады. Апплеттер пайдаланушылармен өзара әрекеттесу үшін графикалық интерфейсті пайдаланатын оқиғаларға негізделген бағдарламалар болып табылады. Сонымен қатар, графикалық пайдаланушы интерфейсі бар кез-келген бағдарлама, мысалы Windows үшін жазылған Java бағдарламасы, оқиғаға негізделген. Басқаша айтқанда, мұндай бағдарламаны оқиғаларды өңдеу туралы нақты түсініксіз жазу мүмкін емес. Оқиғалар java.util, java.awt және java.event сияқты көптеген пакеттермен қолданылады.
Бағдарлама жауап беретін оқиғалардың басым бөлігі пайдаланушы GUI-негізделген бағдарламамен өзара әрекеттескенде пайда болады. Оқиғалар бағдарламаға әр түрлі жолдармен кіреді, олардың әрқайсысы белгілі бір оқиғаға байланысты. Тінтуір, пернетақта және түрлі GUI басқару элементтері сияқты жасалған бірнеше оқиғалар бар мысалы батырма, жылжыту жолағы немесе құсбелгі.
Оқиғаларды делегирлеу моделі
Оқиғаларды өңдеуге заманауи көзқарас оқиғаларды құру және өңдеудің стандартты және дәйекті механизмдерін анықтайтын делегирлеу оқиғасының үлгісіне негізделген. Оның түсінігі қарапайым: дереккөзі оқиға туралы бір немесе бірнеше тыңдаушыларды хабардар етеді. Бұл схемада тыңдаушы оқиға туралы хабарлама алғанша күтеді. Оқиға туралы хабарландыру алынғаннан кейін, тыңдаушы оны өңдейді және басқаруды қайтарады. Бұл дизайнның артықшылығы - бұл оқиғаны өңдейтін қосымшаның логикасы осы оқиғаны білдіретін пайдаланушы интерфейсінің логикасынан анық бөлінеді. Пайдаланушы интерфейсі элементі оқиғаларды өңдеуді бөлек код фрагментіне өкілетті бере алады. Беру үлгісі болған жағдайда, тыңдаушылар оқиғалар туралы хабарландыруларды алу үшін дереккөзге тіркелу керек. Бұның маңызды артықшылығы бар: хабарландырулар оларды алғысы келетіндерге ғана жіберіледі. Бұл ескі Java 1.0 тәсілімен қабылданғаннан гөрі оқиғаларды өңдеудің тиімді жолы. Бұрын оқиға туралы хабарлама компонентпен өңделгенге дейін барлық иерархия бойынша таралды. Бұл барлық компоненттерді оқиғалар туралы хабарламалар алу үшін мәжбүрледі,бұл уақыттың шығынына алып келді.Оқиғаларды делегирлеу моделі мұндай уақыттың шығынын тоқтатты.
Оқиғалар
Делегирлеу үлгісінде оқиға(delegation event model ) - дереккөздің күйін өзгертуді сипаттайтын нысан. Ол графикалық интерфейс элементімен пайдаланушының өзара әрекеттесуі нәтижесінде құрылуы мүмкін. Оқиғалар экрандық батырманы басу, пернетақтадағы таңбаны енгізу, тізімдегі элементті таңдау және тінтуір батырмасын басу сияқты әрекеттер арқылы іске асады. Көптеген басқа пайдаланушы әрекеттері де ұқсас мысалдар ретінде қызмет етуі мүмкін. Оқиғалар сонымен қатар пайдаланушы интерфейсімен тікелей өзара әрекеттесудің нәтижесінде туындауы мүмкін. Мысалы, таймер белгілі бір мәннен, бағдарламалық жасақтамадан немесе аппараттық құралдың сәтсіздігінен немесе белгілі бір әрекетті аяқтағаннан кейін есептегіш аяқталған кезде оқиға орындалуы мүмкін.Біз бағдарлама ерекшелігіне жауап беретін өз оқиғаларды анықтай аламыз.
Оқиғалардың дереккөздері
Дереккөз(source ) - оқиғаны хабардар ететін нысан. Нысанның ішкі күйі қандай да бір түрде өзгергенде оқиға орындалады. Дереккөздер оқиғалардың бірнеше түрін хабарлауы мүмкін.
Дереккөз тыңдаушыларды белгілі бір түрдегі оқиғалар туралы хабарландыру алу үшін тіркеуі керек. Әрбір оқиғаның өзіндік тіркеу әдісі бар. Міне, оның жалпы нысаны:
public void addТипTypeListener (TypeListener el)
Мұнда Tип - оқиғаның атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мысалы, пернетақта оқиға тыңдаушыны тіркейтін әдіс addKeyListener (),ал тінтуірдің қозғалыс тыңдаушысын тіркеу әдісі addMouseMotionListener () болып табылады. Оқиға орындалған кезде барлық тіркелген тыңдаушылар оқиға нысанының көшірмесін алады. Бұл топтық тарату(multicasting) оқиғалары деп аталады. Барлық жағдайларда хабарландырулар оларды қабылдауға тіркелген адамдарға ғана жіберіледі.
Кейбір дереккөздер тек бір тыңдаушыны тіркеуге мүмкіндік береді. Бұл әдістің жалпы формасы төменде көрсетілген:
public void addТипListener(ТипListener el)
throws java.util.TooManyListenersException
Мұнда Tип - оқиға нысанының атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мұндай оқиға болған кезде тіркелген тыңдаушы хабарлама алады. Бұл оқиғалардың жеке таратуы(unicasting) деп аталады.
Сондай-ақ дереккөз тыңдаушыға оқиғалардың нақты түрін тіркеуден өткізбеуге мүмкіндік беретін әдісті ұсынуы керек. Бұл әдістің жалпы формасы келесідей:
public void removeТипTypeListener (TипListener el)
Тағы да Tип - оқиға нысанының атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мысалы, пернетақта тыңдаушысын жою үшін removeKeyListener () әдісін шақырамыз.
Тыңдаушыларды қосатын немесе алып тастайтын әдісті,оқиғаны жариялау дереккөзі қамтамасыз етеді. Мысалы, компонент( Component) класы пернетақта мен тінтуір тыңдаушыларын қосу және жою әдістерін ұсынады.
Оқиғаны тыңдаушылар
Тыңдаушы(Listener) - оқиға туралы хабарландырылған нысан. Ол үшін екі негізгі талап бар. Біріншіден, белгілі бір түрдегі оқиғалар туралы хабарламаларды алу үшін ол бір немесе бірнеше оқиғалар дереккөздерімен тіркелуі керек. Екіншіден, мұндай хабарламаларды қабылдау мен өңдеу әдістерін енгізу қажет.
Оқиғаларды қабылдайтын және басқаратын әдістер java.awt.event пакеттер интерфейстер жиынтығында анықталады. Мысалы, MouseMotionListener интерфейсі объектіні апару немесе тінтуірді жылжыту бойынша хабарландыруларды алудың екі әдісін анықтайды.Бұл интерфейстің орындалуын қамтамасыз ететін кез келген нысан осы оқиғалардың бірін немесе екеуін қабылдай алады және өңдей алады.
1.Оқиғалар класстары
Оқиғаларды білдіретін класстар Java оқиғаларын өңдеу механизімінің негізінде орналасқан. Ең көп қолданылатын оқиғалар AWT және Swing кітапханалары арқылы анықталған. Мұнда AWT кітапханасының оқиғаларына назар аударамыз.
Java оқиғасының класс иерархиясының түбірінде java.util пакетінде орналасқан EventObject классы орналасқан. Бұл барлық оқиғалар үшін супер класс болып табылады. Оның жалғыз конструкторы келесідей:
EventObject (Object дереккөзі)
Дереккөз параметрі оқиға туралы хабарлайтын нысанды білдіреді.
EventObject классы екі әдісті қамтиды: getSource () және toString (). GetSource () әдісі оқиға дереккөзін қайтарады. Оның жалпы формасы келесідей:
Object getSource ()
toString () әдісі оқиғаға баламалы жолды қайтарады.
Қорытындылай келе:
* EventObject класcы - барлық оқиғалар үшін суперкласс.
* AWTEvent классы - оқиғалар топтамасы үлгісімен өңделетін барлық AWT кітапханасының оқиғаларының суперклассы.
Java.awt.event пакеті пайдаланушы интерфейсінің көптеген элементтерінде орындалатын оқиғалардың көптеген түрлерін анықтайды. Келесі кестеде бірнеше кеңінен қолданылатын оқиға класстары жəне олардың қысқаша сипаттамасы көрсетілген.
Әрбір класс үшін ең көп қолданылатын конструкторлар мен әдістер келесі беттерде сипатталған.
Оқиғалар класстары
Сипаттамасы
ActionEvent
Батырма басылғанда, тізім элементіне екі рет басқанда немесе мәзір элементін таңдау кезінде орындалады.
AdjustmentEvent
Айналдыру жолағымен әрекет жасаған кезде орындалады.
ComponentEvent
Компонентті жасыру, оның орнын ауыстыру, оның өлшемін өзгерту немесе көрінуді қосу кезінде орындалады.
ContainerEvent
Контейнер компонентін қосу немесе алып тастау кезінде орындалады
FocusEvent
Компонент пернетақта фокусын алғанда немесе жоғалтқанда, пайда болады.
InputEvent
Барлық компоненттерді енгізу класстары үшін дерексіз суперкласс.
ItemEvent
Құсбелгіні немесе тізім элементін басқанда, сондай-ақ тізім элементін таңдағанда және мәзір тармағын таңдағанда немесе таңдамағанда орындалады.
KeyEvent
Пернетақтадан енгізу кезінде орын алады.
MouseEvent
Тінтуірдің батырмаларын сүйреу, жылжыту, шерту, басу және босату кезінде пайда болады; сондай-ақ тінтуірді компонентке апарғанда немесе одан алынғанда пайда болады.
MouseWheelEvent
Тінтуір дөңгелегін жылжытқанда пайда болады.
TextEvent
Мәтін аймағының немесе мәтін өрісінің мәні өзгерген кезде орындалады
WindowEvent
Терезе қосылғанда немесе жабылғанда, сондай-ақ терезе өшірілгенде, жиырлу, өрістету немесе шыққанда пайда болады.
ActionEvent Классы
ActionEvent классының нысаны батырманы басу, тізім элементін екі рет басу немесе мәзір элементін таңдау арқылы жасалады. ActionEvent классы кез келген модификаторларды сәйкестендіру үшін пайдаланылуы мүмкін төрт бүтін константаларды анықтайды,олар- ALT_MASK, CTRL_MASK, META_MASK және SHIFT_MASK. Сонымен қатар, әрекет оқиғаларын сәйкестендіру үшін қызмет ететін ACTION_PERFORMED бүтін константасы бар.
ActionEvent класында үш конструктор бар:
ActionEvent(Object дереккөз, int түр, String команда)
ActionEvent(Object дереккөз, int түр, String команда, int модификаторы)
ActionEvent(Object дереккөз, int түр,String команда,long қашан,int модификаторы)
Мұнда дереккөзі-оқиға туралы хабарлайтын нысанға сілтеме. Оқиға түрі тип параметрімен, ал оның командалық жолы -- команда параметрімен көрсетілген. Модификатор аргументі оқиға кезінде түрлендіруші пернелерді (Alt, Ctrl,Meta немесе Shift) басқанын көрсетеді.
Төменде көрсетілген getActionCommand () әдісін пайдалана отырып, ActionEvent класын шақыратын нысан үшін команда атауын алуға болады:
String getActionCommand()
Мысалы, батырманы басқанда, экрандық батырманың белгісіне сәйкес команда аты бар әрекет оқиғасы орын алады.
GetModifiers () әдісі оқиға кезінде қандай түрлендіргіш пернелерді (Alt, Ctrl, Meta жәненемесе Shift) басқанын көрсететін мәнді қайтарады. Оның нысаны осындай - int getModifiers().
GetWhen () әдісі оқиға болған уақытты қайтарады. Бұл оқиғаның уақытша белгісі деп аталады. GetWhen () әдісі келесідей-long getWhen().
AdjustmentEvent классы
AdjustmentEvent класының оқиғасы жылжыту жолағымен беріледі. Теңшеу оқиғаларының бес түрі бар (adjustment). AdjustmentEvent класы сәйкестендіру үшін пайдаланылуы мүмкін бүтін константаларды анықтайды.
AdjustmentEvent классымен анықталған константалар.
Константа
Сипаттамасы
BLOCK_DECREMENT
Пайдаланушы оның мәнін төмендету үшін ішкі жылжыту жолағын басады.
BLOCK_INCREMENT
Пайдаланушы оның мәнін арттыру үшін ішкі жылжыту жолағын басады.
TRACK
Жүгірткі жолағын жылжыту.
UNIT_DECREMENT
Оның мәнін төмендету үшін жолдың соңында батырма басылды.
UNIT_INCREMENT
Мәнін жоғарылату үшін жолақтың соңында батырма басылған.
Сонымен қатар, өзгеріс болғанын көрсететін ADJUSTMENT_VALUE_ CHANGED бүтін константасы да бар. Мұнда AdjustmentEvent класының жалғыз конструкторы-AdjustmentEvent (Adjustable дереккөзі, int идентификатор, int түр, int дерек).
Мұнда дереккөз оқиға туралы хабарлайтын нысанға сілтеме болып табылады. Идентификатор параметрі оқиғаны анықтайды. Параметр түрі тип параметрі арқылы көрсетіледі және онымен байланысты деректер деректер параметрімен көрсетіледі. Теңшеу түрі тип параметрімен, ал онымен байланысқан деректер -- деректер параметрімен көрсетілген.
GetAdjustable () әдісі оқиға туралы хабарлайтын нысанды қайтарады. Оның нысаны төменде көрсетілген.
Adjustable getAdjustable()
Теңшеу оқиғасының түрі getAdjustmentType () әдісімен алынады, ол AdjustmentEvent классымен анықталған тұрақты константалардың бірін қайтарады. Оның жалпы формасы келесідей. int getAdjustmentType ()
Теңшеу шамасы getValue () әдісімен алынуы мүмкін.int getValue ()
Мысалы, айналдыру жолағымен манипуляциялар орындалғанда, бұл әдіс өзгеріспен берілген мәнді қайтарады.
ComponentEvent классы
ComponentEvent класының нысаны компоненттің өлшемін, орналасуын немесе көрінуін өзгерткенде жасалады. Құрамдас оқиғалардың төрт түрі бар.Оларды сәйкестендіру үшін ComponentEvent класы бүтін константаларды анықтайды
Константалар
Сипаттамасы
COMPONENT_HIDDEN
Компонент жасырын
COMPONENT_MOVED
Компонент жылжытылды
COMPONENT_RESIZED
Компонент өлшемі өзгертілді
COMPONENT_SHOWN
Компонент көрінеді
ComponentEvent класы келесі конструкторға ие.
ComponentEvent(Component дереккөзі, int түр)
Мұнда дереккөзі-оқиға туралы хабарлайтын объектіге сілтеме. Оқиға түрі түр параметрімен көрсетілген.
ComponentEvent класы -- ContainerEvent, FocusEvent, KeyEvent, MouseEvent, WindowEvent және т.б. кластарға арналған тікелей немесе тікелей емес тарату жолы.
GetComponent () әдісі оқиға туралы хабар беретін компонентті қайтарады.Ол осылай жазылады-Component getComponent().
ContainerEvent классы
ContainerEvent класының нысаны контейнерге компонентті қосу немесе оны сол жерден жою кезінде жасалады. Контейнер оқиғаларының екі түрі бар. ContainerEvent класы оның идентификациясы үшін пайдаланылуы мүмкін бүтін константаларды анықтайды COMPONENT_ADDED және COMPONENT_REMOVED.Олар компоненттің контейнерге қосылғанын немесе одан шығарылғанын анықтайды.
ContainerEvent класы-ComponentEvent класының ішкі класы болып табылады және оның келесі конструкторы бар.
ContainerEvent(Component дереккөз, int түр, Component компаратор)
Мұнда дереккөз-оқиға туралы хабарлаған контейнерге сілтеме. Оқиға түрі тип параметрімен,ал контейнерге қосылатын немесе одан алып тасталатын компонент компаратор параметрімен көрсетілген.
Біз осы оқиғаны жасаған контейнерге сілтемені getcontainer () әдісімен ала аламыз,оның жазылуы мынандай- Container getContainer().
GetChild () әдісі контейнерден қосылған немесе жойылған компонент сілтемесін қайтарады. Оның жалпы нысаны осындай-Component getChild().
FocusEvent классы
FocusEvent класының объектісі компонентің фокусты алған немесе жоғалтқан кезде жасалады. Бұл оқиғалар FOCUS_GAINED және FOCUS_LOST бүтін тұрақтыларымен анықталады.
FocusEvent класы-бұл ComponentEvent класының ішкі класы болып табылады және оның келесі конструкторлары бар.
FocusEvent(Component дереккөз, int түр)
FocusEvent(Component дереккөз, int түр, boolean уақытшаФлаг)
FocusEvent(Component дереккөз, int түр, boolean уақытшаФлаг, Component
басқа)
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетілген. Аргумент уақытшафлаг фокус оқиғасы уақытша болса, true күйіне орнатылған. Әйтпесе, ол false күйіне орнатылады. (Уақытша фокус оқиғасы пайдаланушы интерфейсінің басқа әрекеті нәтижесінде орындалады.Мысалы,фокус мәтін өрісінде орналасқан. Егер пайдаланушы жылжыту жолағын жылжыту үшін тышқанды қозғалтса,фокус уақытша жоғалады.)
Фокусты өзгертуге қатысатын және қарама-қарсы компонент деп аталатын басқа компонент басқа параметрмен беріледі. Осылайша, егер FOCUS_GAINED оқиғасы орындалса,онда басқа параметр фокусты жоғалтатын компонентке сілтеме жасайды. Керісінше, егер FOCUS_LOST оқиғасы орындалса,онда параметр басқа фокусты алатын компонентке сілтеме жасайды.
Төменде көрсетілген getOppositeComponent() әдісін шақыру арқылы басқа компоненттерді анықтай аламыз.
Component getOppositeComponent ()-Әдіс қарама-қарсы компонентті қайтарады.
IsTemporary әдісі () фокус өзгерісінің уақытша екенін көрсетеді. Оның нысаны осындай-boolean isTemporary().Егер өзгерту уақытша болса, әдіс true қайтарады. әйтпесе, ол false қайтарады.
InputEvent классы
InputEvent абстрактілі классы ComponentEvent классының ішкі классы және компонентті енгізу оқиғалары үшін суперкласс болып табылады. Оның ішкі класстары -- KeyEvent және MouseEvent.
InputEvent класы оқиғамен байланысты болуы мүмкін басқару пернелерін басу белгісі ретінде кез келген түрлендіргіштерді ұсынатын бірнеше жол тұрақтысын анықтайды. Бастапқыда InputEvent класы модификаторларды ұсыну үшін келесі сегіз мәнді анықтайды.
ALT_MASK
BUTTON2_MASK
META_MASK
ALT_GRAPH_MASK
BUTTON3_MASK
SHIFT_MASK
BUTTON1_MASK
CTRL_MASK
Алайда, пернетақта оқиғаларының, тышқанның оқиғаларының, сондай-ақ басқа да проблемалардың арасындағы қолданылатын модификаторларда қақтығыстар мүмкіндігі болғандықтан, модификаторлардың келесі кеңейтілген мәндері қосылды.
ALT_DOWN_MASK
BUTTON2_DOWN_MASK
META_DOWN_MASK
ALT_GRAPH_DOWN_MASK
BUTTON3_DOWN_MASK
SHIFT_DOWN_MASK
BUTTON1_DOWN_MASK
CTRL_DOWN_MASK
Жаңа кодты жазғанда, түпнұсқалардың орнына жаңа жетілдірілген модификаторларды пайдалану ұсынылады.
Оқиға кезінде қандай түрлендіргіш пернесі басылғанын тексеру үшін isAltDown(),isAltGraphDown(),isCont rolDown(),isMetaDown() және isShiftDown() әдістерін пайдаланылады. Бұл әдістердің нысандары төменде көрсетілген:
boolean isAltDown()
boolean isAltGraphDown()
boolean isControlDown()
boolean isMetaDown()
boolean isShiftDown()
Кеңейтілген модификаторларды төменде көрсетілген getModifiersEx () әдісімен алуға болады.
int getModifiersEx()
KeyEvent классы
KeyEvent классының нысаны пернетақтадан енгізгенде орындалады.Пернетақта оқиғаларының үш түрі бар -- KEY_PRESSED, KEY_RELEASED және KEY_TYPED. Алғашқы екі түрдегі оқиғалар пернені басқанда және босатқанда орындалады.Соңғы түрі таңбаны енгізгенде орындалады. Барлық пернелерді басу таңбаны енгізбейтінін есте сақтау керек. Мысалы, Shift пернесін басу ешқандай таңбаны енгізбейді.
KeyEvent классы көптеген басқа бүтін константаларды анықтайды. Мысалы, VK_0 - VK_9 және VK_A - VK_Z константтары ASCII сандар мен әріптердің эквиваленттерін анықтайды. Тағы бірнеше басқа тұрақтылар бар.
VK_ALT
VK_DOWN
VK_LEFT
VK_RIGHT
VK_CANCEL
VK_ENTER
VK_PAGE_DOWN
VK_SHIFT
VK_CONTROL
VK_ESCAPE
VK_PAGE_UP
VK_UP
VK константалары Control, Alt немесе Shift сияқты кез келген түрлендіргіштерге тәуелді емес виртуалды пернелер кодтарын орнатады.
KeyEvent класы InputEvent классының ішкі классы болып табылады. Міне, оның конструкторларының бірі:
KeyEvent(Component дереккөзі, int түрі, long қашан, int түрлендіру, int коды, char символы)
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетіледі.Пернені басқанда жүйелік уақыт қашан параметірінде беріледі. Түрлендіру аргументі оқиға кезінде қандай түрлендіргіштер басылғанын көрсетеді.VK_up,VK_A сияқты виртуалды перненің коды код параметрінде беріледі. Таңбалық баламасы(егер бар болса) таңба параметрінде беріледі. Егер оқиғада ешқандай дұрыс таңба болмаса, онда таңба CHAR_UNDEFINED мәнін қамтиды. KEY_TYPED оқиғалары үшін код параметріндеVK_UNDEFINED мәні болады.
KeyEvent класы бірнеше әдістерді анықтайды, бірақ, бәлкім, ең жиі қолданылатын -- бұл пернелер таңбасын қайтаратын getKeyChar () әдісі және пернелер кодын қайтаратын getKeyCode () әдісі. Олардың жалпы нысаны-char getKeyChar (); int getKeyCode()
Егер пернені басқанда,ешқандай дұрыс таңбалар болмаса,онда getkeychar() әдісі CHAR_UNDEFINED мәнін қайтарады. KEY_TYPED оқиға кезінде getkeycode() әдісі VK_UNDEFINED мәнін қайтарады.
MouseEvent классы
Тінтуір оқиғасының сегіз түрі бар. MouseEvent классы оларды сәйкестендіру үшін келесі кестеде сипатталған бүтін тұрақты мәндердің жиынын анықтайды.
MouseEvent классы көмегімен анықталған тұрақтылар
Тұрақтылар
Сипаттамасы
MOUSE_CLICKED
Пайдаланушы тінтуір батырмасын басты
MOUSE_DRAGGED
Пайдаланушы батырманы басқан кезде тінтуірді сүйрейді.
MOUSE_ENTERED
Тінтуір меңзері компонентке кірді
MOUSE_EXITED
Тінтуір меңзері компоненттен шықты
MOUSE_MOVED
Тінтуір жылжыған кезде
MOUSE_PRESSED
Тінтуір батырмасы басылды
MOUSE_RELEASED
Тінтуір батырмасы жіберілді
MOUSE_WHEEL
Тінтуір дөңгелегі қозғалғанда
MouseEvent классы InputEvent классының ішкі классы.Оның құрылымы мынандай:MouseEvent(Component дереккөзі,int түр,long қашан,int модификатор, int x, int y, int басулар, boolean Мәзірді шақыру).
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетіледі.Оқиға болған кездегі жүйелік уақыт қашан деген параметрде беріледі. Модификатор аргументі тінтуір оқиғасы кезінде қандай модификатор пернелері басылғанын көрсетеді. Тінтуір меңзерінің координаттары x және y параметрлерімен беріледі.Басулар саны басу параметрінде беріледі.Мәзірді шақыру жалауы, бұл оқиға осы платформада қалқымалы мәзірді шақыруы керек пе екенін көрсетеді.
Бұл кластың екі жиі қолданылатын әдісі-getX() және getY () әдістері.Олар оқиға кезінде тінтуір жүгіргісінің X және Y координаттарын қайтарады. Олардың нысаны осындай-int getX() int getY().
TranslatePoint () әдісі оқиға орнын өзгертеді. Оның форматы келесідей көрсетілген-void translatePoint(int x, int y) .Мұнда x және y аргументтері оқиғаның бастапқы координаттарына қосылады.
GetClickCount әдісі () осы оқиға үшін тінтуірді неше рет басқан санынын анықтайды. Оның жазылуы келесідей-int getClickCount().
IsPopupTrigger () әдісі осы оқиға ағымдағы платформада қалқымалы мәзірді тудыратынын тексереді. Оның нысаны осындай-boolean isPopupTrigger().
Сондай-ақ, getButton () әдісі бар.Оның жазылуы келесідей-int getButton().Ол оқиғаны тудырған батырманы білдіретін мәнді қайтарады.Қайтарылатын мән MouseEvent класында анықталған тұрақтылардың бірі болады.
WindowEvent классы
Терезе оқиғаларының он түрі бар. WindowEvent класы оларды сәйкестендіру үшін пайдаланылуы мүмкін бүтін константаларды анықтайды.
WindowEvent класымен анықталған тұрақтылар
Тұрақтылар
Сипаттамасы
WINDOW_ACTIVATED
Терезе белсендірілді(активацияланды)
WINDOW_CLOSED
Терезе жабылды
WINDOW_CLOSING
Пайдаланушы терезені жабуды сұрады
WINDOW_DEACTIVATED
Терезе деактивацияланды
WINDOW_DEICONIFIED
Терезе жайылды
WINDOW_GAINED_FOCUS
Терезе енгізу фокусын алды
WINDOW_ICONIFIED
Терезе жабылды
WINDOW_LOST_FOCUS
Терезе енгізу фокусын жоғалтты
WINDOW_OPENED
Терезе ашылды
WINDOW_STATE_CHANGED
Терезенің күйі өзгерді
WindowEvent класы-ComponentEvent классының ішкі классы. Ол бірнеше конструкторларды анықтайды. Біріншісі-WindowEvent(Window дереккөзі, int түр).
Мұнда дереккөз-оқиға туралы хабарлаған нысанға сілтеме. Оқиға түрі тип параметрінде беріледі. Келесі үш конструктор толық бақылауды қамтамасыз етеді.
WindowEvent(Window дереккөз ,int түр, Window басқа)
WindowEvent(Window дереккөз,int түр, int жағдайдан, int жағдайға)
WindowEvent(Window дереккөз,int түр,Window басқа,int жағдайдан,int жағдайға
Мұнда басқа параметр фокус немесе белсендіру оқиғасы кезінде қарама-қарсы терезені анықтайды.Параметр int жағдайдан терезенің алдыңғы күйін анықтайды,int жағдайға терезенің келесі күйін анықтайды.
Бұл класстың жиі қолданылатын әдісі-getWindow (). Ол оқиға туралы хабарлаған Window классының нысанын қайтарады. Оның жалпы нысаны-Window getWindow().
WindowEvent класы қарама-қарсы терезені (фокус оқиғалары немесе белсендіру кезінде), терезенің алдыңғы күйін, сондай-ақ оның ағымдағы күйін қайтаратын әдістерді анықтайды. Бұл әдістер төменде көрсетілген:
Window getOppositeWindow()
int getOldState()
int getNewState()
2.Оқиғаны тыңдаушы интерфейстері
Жоғарыда айтылғандай оқиғаны делегациялау моделі екі бөліктен тұрады,олар:дереккөз және тыңдаушы.Тыңдаушылар java.awt.event пакетінде анықталған бірнемесе бірнеше интерфейстерді жүзеге асырғанда құрылады.Оқиға болған кезде оның дереккөзі тыңдаушыда анықталған тиісті әдісті шақырады және оқиға объектісін аргумент ретінде береді.Келесі кестеде тыңдаушылардың жиі қолданылатын интерфейстері көрсетілген және олар анықтайтын әдістердің қысқаша сипаттамасы берілген.
Интерфейс
Сипаттамасы
ActionListener
Әрекет оқиғаларын қабылдау үшін бір әдісті анықтайды
AdjustmentListener
Теңшеу оқиғаларын қабылдау үшін бір әдісті анықтайды
ComponentListener
Жасыру, жылжыту, өлшемін өзгерту немесе компонентті көрсету үшін төрт әдісті анықтайды
ContainerListener
Компонент контейнерге қосылғанын немесе одан шығарылғаннын білу үшін екі әдісті анықтайды
FocusListener
Пернетақта енгізу фокус компонентін алу немесе жоғалту үшін екі әдісті анықтайды
ItemListener
Элементтің күйін өзгерту уақытын көрсететін бір әдісті анықтайды
KeyListener
Пернені басу, босату немесе таңбаны енгізу үшін үш әдісті анықтайды
MouseListener
Тінтуірдің басуын, тінтуірдің меңзерінің компонент өрісіне кірген сәтін, оның құрамдас бөліктердің бөлінуін, тінтуір батырмаларын басу мен босатуын анықтайтын бес әдісті анықтайды
MouseMotionListener
Сүйреп апару немесе тінтуір қозғалысын тану үшін екі әдісті анықтайды
MouseWheelListener
Тінтуір дөңгелегінің қозғалысын анықтайтын ... жалғасы
С. СЕЙФУЛЛИН атындағы ҚАЗАҚ АГРОТЕХНИКАЛЫҚ УНИВЕРСИТИТІ
КАФЕДРА:Есептеу техникасы және бағдарламалық қамтамасыз ету
Курстық жұмыс
ПӘНІ Java тілінде бағдарламалау
ТАҚЫРЫБЫ: Оқиғаларды өңдеу
Орындаған: 1 курс студенті
Макашев Санжар
Тексерген: Байдалина А. Р.
Курстық жұмыс қорғауға жіберілді__________________________ ___
Нұр - Сұлтан 2019
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..1-3
1.Оқиғалар класстары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4-12
2.Оқиғаны тыңдаушы интерфейстері ... ... ... ... ... .. ... ... ... ..13-16
3. Оқиғаларды делегирлеу моделін пайдалану ... ... ... ... ... .17-23
a) Тышқан оқиғасын өңдеу
b) Пернетақта оқиғаларын өңдеу
4. Адаптерлер класстары ... ... ... ... ... ... ... ... ... ... ... ... ... ... 24-25
5.Ішкі класстар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .26-27
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ...28
Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... 29
Кіріспе
Оқиғаларды өңдеу барлық Java бағдарламалау үшін негіз болып табылады, себебі ол апплеттердің және графикалық пайдаланушы интерфейсі бар бағдарламалардың басқа түрлерінің (GUI) негізі болып табылады. Апплеттер пайдаланушылармен өзара әрекеттесу үшін графикалық интерфейсті пайдаланатын оқиғаларға негізделген бағдарламалар болып табылады. Сонымен қатар, графикалық пайдаланушы интерфейсі бар кез-келген бағдарлама, мысалы Windows үшін жазылған Java бағдарламасы, оқиғаға негізделген. Басқаша айтқанда, мұндай бағдарламаны оқиғаларды өңдеу туралы нақты түсініксіз жазу мүмкін емес. Оқиғалар java.util, java.awt және java.event сияқты көптеген пакеттермен қолданылады.
Бағдарлама жауап беретін оқиғалардың басым бөлігі пайдаланушы GUI-негізделген бағдарламамен өзара әрекеттескенде пайда болады. Оқиғалар бағдарламаға әр түрлі жолдармен кіреді, олардың әрқайсысы белгілі бір оқиғаға байланысты. Тінтуір, пернетақта және түрлі GUI басқару элементтері сияқты жасалған бірнеше оқиғалар бар мысалы батырма, жылжыту жолағы немесе құсбелгі.
Оқиғаларды делегирлеу моделі
Оқиғаларды өңдеуге заманауи көзқарас оқиғаларды құру және өңдеудің стандартты және дәйекті механизмдерін анықтайтын делегирлеу оқиғасының үлгісіне негізделген. Оның түсінігі қарапайым: дереккөзі оқиға туралы бір немесе бірнеше тыңдаушыларды хабардар етеді. Бұл схемада тыңдаушы оқиға туралы хабарлама алғанша күтеді. Оқиға туралы хабарландыру алынғаннан кейін, тыңдаушы оны өңдейді және басқаруды қайтарады. Бұл дизайнның артықшылығы - бұл оқиғаны өңдейтін қосымшаның логикасы осы оқиғаны білдіретін пайдаланушы интерфейсінің логикасынан анық бөлінеді. Пайдаланушы интерфейсі элементі оқиғаларды өңдеуді бөлек код фрагментіне өкілетті бере алады. Беру үлгісі болған жағдайда, тыңдаушылар оқиғалар туралы хабарландыруларды алу үшін дереккөзге тіркелу керек. Бұның маңызды артықшылығы бар: хабарландырулар оларды алғысы келетіндерге ғана жіберіледі. Бұл ескі Java 1.0 тәсілімен қабылданғаннан гөрі оқиғаларды өңдеудің тиімді жолы. Бұрын оқиға туралы хабарлама компонентпен өңделгенге дейін барлық иерархия бойынша таралды. Бұл барлық компоненттерді оқиғалар туралы хабарламалар алу үшін мәжбүрледі,бұл уақыттың шығынына алып келді.Оқиғаларды делегирлеу моделі мұндай уақыттың шығынын тоқтатты.
Оқиғалар
Делегирлеу үлгісінде оқиға(delegation event model ) - дереккөздің күйін өзгертуді сипаттайтын нысан. Ол графикалық интерфейс элементімен пайдаланушының өзара әрекеттесуі нәтижесінде құрылуы мүмкін. Оқиғалар экрандық батырманы басу, пернетақтадағы таңбаны енгізу, тізімдегі элементті таңдау және тінтуір батырмасын басу сияқты әрекеттер арқылы іске асады. Көптеген басқа пайдаланушы әрекеттері де ұқсас мысалдар ретінде қызмет етуі мүмкін. Оқиғалар сонымен қатар пайдаланушы интерфейсімен тікелей өзара әрекеттесудің нәтижесінде туындауы мүмкін. Мысалы, таймер белгілі бір мәннен, бағдарламалық жасақтамадан немесе аппараттық құралдың сәтсіздігінен немесе белгілі бір әрекетті аяқтағаннан кейін есептегіш аяқталған кезде оқиға орындалуы мүмкін.Біз бағдарлама ерекшелігіне жауап беретін өз оқиғаларды анықтай аламыз.
Оқиғалардың дереккөздері
Дереккөз(source ) - оқиғаны хабардар ететін нысан. Нысанның ішкі күйі қандай да бір түрде өзгергенде оқиға орындалады. Дереккөздер оқиғалардың бірнеше түрін хабарлауы мүмкін.
Дереккөз тыңдаушыларды белгілі бір түрдегі оқиғалар туралы хабарландыру алу үшін тіркеуі керек. Әрбір оқиғаның өзіндік тіркеу әдісі бар. Міне, оның жалпы нысаны:
public void addТипTypeListener (TypeListener el)
Мұнда Tип - оқиғаның атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мысалы, пернетақта оқиға тыңдаушыны тіркейтін әдіс addKeyListener (),ал тінтуірдің қозғалыс тыңдаушысын тіркеу әдісі addMouseMotionListener () болып табылады. Оқиға орындалған кезде барлық тіркелген тыңдаушылар оқиға нысанының көшірмесін алады. Бұл топтық тарату(multicasting) оқиғалары деп аталады. Барлық жағдайларда хабарландырулар оларды қабылдауға тіркелген адамдарға ғана жіберіледі.
Кейбір дереккөздер тек бір тыңдаушыны тіркеуге мүмкіндік береді. Бұл әдістің жалпы формасы төменде көрсетілген:
public void addТипListener(ТипListener el)
throws java.util.TooManyListenersException
Мұнда Tип - оқиға нысанының атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мұндай оқиға болған кезде тіркелген тыңдаушы хабарлама алады. Бұл оқиғалардың жеке таратуы(unicasting) деп аталады.
Сондай-ақ дереккөз тыңдаушыға оқиғалардың нақты түрін тіркеуден өткізбеуге мүмкіндік беретін әдісті ұсынуы керек. Бұл әдістің жалпы формасы келесідей:
public void removeТипTypeListener (TипListener el)
Тағы да Tип - оқиға нысанының атауы, ал el - оқиғаны тыңдаушыға сілтеме. Мысалы, пернетақта тыңдаушысын жою үшін removeKeyListener () әдісін шақырамыз.
Тыңдаушыларды қосатын немесе алып тастайтын әдісті,оқиғаны жариялау дереккөзі қамтамасыз етеді. Мысалы, компонент( Component) класы пернетақта мен тінтуір тыңдаушыларын қосу және жою әдістерін ұсынады.
Оқиғаны тыңдаушылар
Тыңдаушы(Listener) - оқиға туралы хабарландырылған нысан. Ол үшін екі негізгі талап бар. Біріншіден, белгілі бір түрдегі оқиғалар туралы хабарламаларды алу үшін ол бір немесе бірнеше оқиғалар дереккөздерімен тіркелуі керек. Екіншіден, мұндай хабарламаларды қабылдау мен өңдеу әдістерін енгізу қажет.
Оқиғаларды қабылдайтын және басқаратын әдістер java.awt.event пакеттер интерфейстер жиынтығында анықталады. Мысалы, MouseMotionListener интерфейсі объектіні апару немесе тінтуірді жылжыту бойынша хабарландыруларды алудың екі әдісін анықтайды.Бұл интерфейстің орындалуын қамтамасыз ететін кез келген нысан осы оқиғалардың бірін немесе екеуін қабылдай алады және өңдей алады.
1.Оқиғалар класстары
Оқиғаларды білдіретін класстар Java оқиғаларын өңдеу механизімінің негізінде орналасқан. Ең көп қолданылатын оқиғалар AWT және Swing кітапханалары арқылы анықталған. Мұнда AWT кітапханасының оқиғаларына назар аударамыз.
Java оқиғасының класс иерархиясының түбірінде java.util пакетінде орналасқан EventObject классы орналасқан. Бұл барлық оқиғалар үшін супер класс болып табылады. Оның жалғыз конструкторы келесідей:
EventObject (Object дереккөзі)
Дереккөз параметрі оқиға туралы хабарлайтын нысанды білдіреді.
EventObject классы екі әдісті қамтиды: getSource () және toString (). GetSource () әдісі оқиға дереккөзін қайтарады. Оның жалпы формасы келесідей:
Object getSource ()
toString () әдісі оқиғаға баламалы жолды қайтарады.
Қорытындылай келе:
* EventObject класcы - барлық оқиғалар үшін суперкласс.
* AWTEvent классы - оқиғалар топтамасы үлгісімен өңделетін барлық AWT кітапханасының оқиғаларының суперклассы.
Java.awt.event пакеті пайдаланушы интерфейсінің көптеген элементтерінде орындалатын оқиғалардың көптеген түрлерін анықтайды. Келесі кестеде бірнеше кеңінен қолданылатын оқиға класстары жəне олардың қысқаша сипаттамасы көрсетілген.
Әрбір класс үшін ең көп қолданылатын конструкторлар мен әдістер келесі беттерде сипатталған.
Оқиғалар класстары
Сипаттамасы
ActionEvent
Батырма басылғанда, тізім элементіне екі рет басқанда немесе мәзір элементін таңдау кезінде орындалады.
AdjustmentEvent
Айналдыру жолағымен әрекет жасаған кезде орындалады.
ComponentEvent
Компонентті жасыру, оның орнын ауыстыру, оның өлшемін өзгерту немесе көрінуді қосу кезінде орындалады.
ContainerEvent
Контейнер компонентін қосу немесе алып тастау кезінде орындалады
FocusEvent
Компонент пернетақта фокусын алғанда немесе жоғалтқанда, пайда болады.
InputEvent
Барлық компоненттерді енгізу класстары үшін дерексіз суперкласс.
ItemEvent
Құсбелгіні немесе тізім элементін басқанда, сондай-ақ тізім элементін таңдағанда және мәзір тармағын таңдағанда немесе таңдамағанда орындалады.
KeyEvent
Пернетақтадан енгізу кезінде орын алады.
MouseEvent
Тінтуірдің батырмаларын сүйреу, жылжыту, шерту, басу және босату кезінде пайда болады; сондай-ақ тінтуірді компонентке апарғанда немесе одан алынғанда пайда болады.
MouseWheelEvent
Тінтуір дөңгелегін жылжытқанда пайда болады.
TextEvent
Мәтін аймағының немесе мәтін өрісінің мәні өзгерген кезде орындалады
WindowEvent
Терезе қосылғанда немесе жабылғанда, сондай-ақ терезе өшірілгенде, жиырлу, өрістету немесе шыққанда пайда болады.
ActionEvent Классы
ActionEvent классының нысаны батырманы басу, тізім элементін екі рет басу немесе мәзір элементін таңдау арқылы жасалады. ActionEvent классы кез келген модификаторларды сәйкестендіру үшін пайдаланылуы мүмкін төрт бүтін константаларды анықтайды,олар- ALT_MASK, CTRL_MASK, META_MASK және SHIFT_MASK. Сонымен қатар, әрекет оқиғаларын сәйкестендіру үшін қызмет ететін ACTION_PERFORMED бүтін константасы бар.
ActionEvent класында үш конструктор бар:
ActionEvent(Object дереккөз, int түр, String команда)
ActionEvent(Object дереккөз, int түр, String команда, int модификаторы)
ActionEvent(Object дереккөз, int түр,String команда,long қашан,int модификаторы)
Мұнда дереккөзі-оқиға туралы хабарлайтын нысанға сілтеме. Оқиға түрі тип параметрімен, ал оның командалық жолы -- команда параметрімен көрсетілген. Модификатор аргументі оқиға кезінде түрлендіруші пернелерді (Alt, Ctrl,Meta немесе Shift) басқанын көрсетеді.
Төменде көрсетілген getActionCommand () әдісін пайдалана отырып, ActionEvent класын шақыратын нысан үшін команда атауын алуға болады:
String getActionCommand()
Мысалы, батырманы басқанда, экрандық батырманың белгісіне сәйкес команда аты бар әрекет оқиғасы орын алады.
GetModifiers () әдісі оқиға кезінде қандай түрлендіргіш пернелерді (Alt, Ctrl, Meta жәненемесе Shift) басқанын көрсететін мәнді қайтарады. Оның нысаны осындай - int getModifiers().
GetWhen () әдісі оқиға болған уақытты қайтарады. Бұл оқиғаның уақытша белгісі деп аталады. GetWhen () әдісі келесідей-long getWhen().
AdjustmentEvent классы
AdjustmentEvent класының оқиғасы жылжыту жолағымен беріледі. Теңшеу оқиғаларының бес түрі бар (adjustment). AdjustmentEvent класы сәйкестендіру үшін пайдаланылуы мүмкін бүтін константаларды анықтайды.
AdjustmentEvent классымен анықталған константалар.
Константа
Сипаттамасы
BLOCK_DECREMENT
Пайдаланушы оның мәнін төмендету үшін ішкі жылжыту жолағын басады.
BLOCK_INCREMENT
Пайдаланушы оның мәнін арттыру үшін ішкі жылжыту жолағын басады.
TRACK
Жүгірткі жолағын жылжыту.
UNIT_DECREMENT
Оның мәнін төмендету үшін жолдың соңында батырма басылды.
UNIT_INCREMENT
Мәнін жоғарылату үшін жолақтың соңында батырма басылған.
Сонымен қатар, өзгеріс болғанын көрсететін ADJUSTMENT_VALUE_ CHANGED бүтін константасы да бар. Мұнда AdjustmentEvent класының жалғыз конструкторы-AdjustmentEvent (Adjustable дереккөзі, int идентификатор, int түр, int дерек).
Мұнда дереккөз оқиға туралы хабарлайтын нысанға сілтеме болып табылады. Идентификатор параметрі оқиғаны анықтайды. Параметр түрі тип параметрі арқылы көрсетіледі және онымен байланысты деректер деректер параметрімен көрсетіледі. Теңшеу түрі тип параметрімен, ал онымен байланысқан деректер -- деректер параметрімен көрсетілген.
GetAdjustable () әдісі оқиға туралы хабарлайтын нысанды қайтарады. Оның нысаны төменде көрсетілген.
Adjustable getAdjustable()
Теңшеу оқиғасының түрі getAdjustmentType () әдісімен алынады, ол AdjustmentEvent классымен анықталған тұрақты константалардың бірін қайтарады. Оның жалпы формасы келесідей. int getAdjustmentType ()
Теңшеу шамасы getValue () әдісімен алынуы мүмкін.int getValue ()
Мысалы, айналдыру жолағымен манипуляциялар орындалғанда, бұл әдіс өзгеріспен берілген мәнді қайтарады.
ComponentEvent классы
ComponentEvent класының нысаны компоненттің өлшемін, орналасуын немесе көрінуін өзгерткенде жасалады. Құрамдас оқиғалардың төрт түрі бар.Оларды сәйкестендіру үшін ComponentEvent класы бүтін константаларды анықтайды
Константалар
Сипаттамасы
COMPONENT_HIDDEN
Компонент жасырын
COMPONENT_MOVED
Компонент жылжытылды
COMPONENT_RESIZED
Компонент өлшемі өзгертілді
COMPONENT_SHOWN
Компонент көрінеді
ComponentEvent класы келесі конструкторға ие.
ComponentEvent(Component дереккөзі, int түр)
Мұнда дереккөзі-оқиға туралы хабарлайтын объектіге сілтеме. Оқиға түрі түр параметрімен көрсетілген.
ComponentEvent класы -- ContainerEvent, FocusEvent, KeyEvent, MouseEvent, WindowEvent және т.б. кластарға арналған тікелей немесе тікелей емес тарату жолы.
GetComponent () әдісі оқиға туралы хабар беретін компонентті қайтарады.Ол осылай жазылады-Component getComponent().
ContainerEvent классы
ContainerEvent класының нысаны контейнерге компонентті қосу немесе оны сол жерден жою кезінде жасалады. Контейнер оқиғаларының екі түрі бар. ContainerEvent класы оның идентификациясы үшін пайдаланылуы мүмкін бүтін константаларды анықтайды COMPONENT_ADDED және COMPONENT_REMOVED.Олар компоненттің контейнерге қосылғанын немесе одан шығарылғанын анықтайды.
ContainerEvent класы-ComponentEvent класының ішкі класы болып табылады және оның келесі конструкторы бар.
ContainerEvent(Component дереккөз, int түр, Component компаратор)
Мұнда дереккөз-оқиға туралы хабарлаған контейнерге сілтеме. Оқиға түрі тип параметрімен,ал контейнерге қосылатын немесе одан алып тасталатын компонент компаратор параметрімен көрсетілген.
Біз осы оқиғаны жасаған контейнерге сілтемені getcontainer () әдісімен ала аламыз,оның жазылуы мынандай- Container getContainer().
GetChild () әдісі контейнерден қосылған немесе жойылған компонент сілтемесін қайтарады. Оның жалпы нысаны осындай-Component getChild().
FocusEvent классы
FocusEvent класының объектісі компонентің фокусты алған немесе жоғалтқан кезде жасалады. Бұл оқиғалар FOCUS_GAINED және FOCUS_LOST бүтін тұрақтыларымен анықталады.
FocusEvent класы-бұл ComponentEvent класының ішкі класы болып табылады және оның келесі конструкторлары бар.
FocusEvent(Component дереккөз, int түр)
FocusEvent(Component дереккөз, int түр, boolean уақытшаФлаг)
FocusEvent(Component дереккөз, int түр, boolean уақытшаФлаг, Component
басқа)
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетілген. Аргумент уақытшафлаг фокус оқиғасы уақытша болса, true күйіне орнатылған. Әйтпесе, ол false күйіне орнатылады. (Уақытша фокус оқиғасы пайдаланушы интерфейсінің басқа әрекеті нәтижесінде орындалады.Мысалы,фокус мәтін өрісінде орналасқан. Егер пайдаланушы жылжыту жолағын жылжыту үшін тышқанды қозғалтса,фокус уақытша жоғалады.)
Фокусты өзгертуге қатысатын және қарама-қарсы компонент деп аталатын басқа компонент басқа параметрмен беріледі. Осылайша, егер FOCUS_GAINED оқиғасы орындалса,онда басқа параметр фокусты жоғалтатын компонентке сілтеме жасайды. Керісінше, егер FOCUS_LOST оқиғасы орындалса,онда параметр басқа фокусты алатын компонентке сілтеме жасайды.
Төменде көрсетілген getOppositeComponent() әдісін шақыру арқылы басқа компоненттерді анықтай аламыз.
Component getOppositeComponent ()-Әдіс қарама-қарсы компонентті қайтарады.
IsTemporary әдісі () фокус өзгерісінің уақытша екенін көрсетеді. Оның нысаны осындай-boolean isTemporary().Егер өзгерту уақытша болса, әдіс true қайтарады. әйтпесе, ол false қайтарады.
InputEvent классы
InputEvent абстрактілі классы ComponentEvent классының ішкі классы және компонентті енгізу оқиғалары үшін суперкласс болып табылады. Оның ішкі класстары -- KeyEvent және MouseEvent.
InputEvent класы оқиғамен байланысты болуы мүмкін басқару пернелерін басу белгісі ретінде кез келген түрлендіргіштерді ұсынатын бірнеше жол тұрақтысын анықтайды. Бастапқыда InputEvent класы модификаторларды ұсыну үшін келесі сегіз мәнді анықтайды.
ALT_MASK
BUTTON2_MASK
META_MASK
ALT_GRAPH_MASK
BUTTON3_MASK
SHIFT_MASK
BUTTON1_MASK
CTRL_MASK
Алайда, пернетақта оқиғаларының, тышқанның оқиғаларының, сондай-ақ басқа да проблемалардың арасындағы қолданылатын модификаторларда қақтығыстар мүмкіндігі болғандықтан, модификаторлардың келесі кеңейтілген мәндері қосылды.
ALT_DOWN_MASK
BUTTON2_DOWN_MASK
META_DOWN_MASK
ALT_GRAPH_DOWN_MASK
BUTTON3_DOWN_MASK
SHIFT_DOWN_MASK
BUTTON1_DOWN_MASK
CTRL_DOWN_MASK
Жаңа кодты жазғанда, түпнұсқалардың орнына жаңа жетілдірілген модификаторларды пайдалану ұсынылады.
Оқиға кезінде қандай түрлендіргіш пернесі басылғанын тексеру үшін isAltDown(),isAltGraphDown(),isCont rolDown(),isMetaDown() және isShiftDown() әдістерін пайдаланылады. Бұл әдістердің нысандары төменде көрсетілген:
boolean isAltDown()
boolean isAltGraphDown()
boolean isControlDown()
boolean isMetaDown()
boolean isShiftDown()
Кеңейтілген модификаторларды төменде көрсетілген getModifiersEx () әдісімен алуға болады.
int getModifiersEx()
KeyEvent классы
KeyEvent классының нысаны пернетақтадан енгізгенде орындалады.Пернетақта оқиғаларының үш түрі бар -- KEY_PRESSED, KEY_RELEASED және KEY_TYPED. Алғашқы екі түрдегі оқиғалар пернені басқанда және босатқанда орындалады.Соңғы түрі таңбаны енгізгенде орындалады. Барлық пернелерді басу таңбаны енгізбейтінін есте сақтау керек. Мысалы, Shift пернесін басу ешқандай таңбаны енгізбейді.
KeyEvent классы көптеген басқа бүтін константаларды анықтайды. Мысалы, VK_0 - VK_9 және VK_A - VK_Z константтары ASCII сандар мен әріптердің эквиваленттерін анықтайды. Тағы бірнеше басқа тұрақтылар бар.
VK_ALT
VK_DOWN
VK_LEFT
VK_RIGHT
VK_CANCEL
VK_ENTER
VK_PAGE_DOWN
VK_SHIFT
VK_CONTROL
VK_ESCAPE
VK_PAGE_UP
VK_UP
VK константалары Control, Alt немесе Shift сияқты кез келген түрлендіргіштерге тәуелді емес виртуалды пернелер кодтарын орнатады.
KeyEvent класы InputEvent классының ішкі классы болып табылады. Міне, оның конструкторларының бірі:
KeyEvent(Component дереккөзі, int түрі, long қашан, int түрлендіру, int коды, char символы)
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетіледі.Пернені басқанда жүйелік уақыт қашан параметірінде беріледі. Түрлендіру аргументі оқиға кезінде қандай түрлендіргіштер басылғанын көрсетеді.VK_up,VK_A сияқты виртуалды перненің коды код параметрінде беріледі. Таңбалық баламасы(егер бар болса) таңба параметрінде беріледі. Егер оқиғада ешқандай дұрыс таңба болмаса, онда таңба CHAR_UNDEFINED мәнін қамтиды. KEY_TYPED оқиғалары үшін код параметріндеVK_UNDEFINED мәні болады.
KeyEvent класы бірнеше әдістерді анықтайды, бірақ, бәлкім, ең жиі қолданылатын -- бұл пернелер таңбасын қайтаратын getKeyChar () әдісі және пернелер кодын қайтаратын getKeyCode () әдісі. Олардың жалпы нысаны-char getKeyChar (); int getKeyCode()
Егер пернені басқанда,ешқандай дұрыс таңбалар болмаса,онда getkeychar() әдісі CHAR_UNDEFINED мәнін қайтарады. KEY_TYPED оқиға кезінде getkeycode() әдісі VK_UNDEFINED мәнін қайтарады.
MouseEvent классы
Тінтуір оқиғасының сегіз түрі бар. MouseEvent классы оларды сәйкестендіру үшін келесі кестеде сипатталған бүтін тұрақты мәндердің жиынын анықтайды.
MouseEvent классы көмегімен анықталған тұрақтылар
Тұрақтылар
Сипаттамасы
MOUSE_CLICKED
Пайдаланушы тінтуір батырмасын басты
MOUSE_DRAGGED
Пайдаланушы батырманы басқан кезде тінтуірді сүйрейді.
MOUSE_ENTERED
Тінтуір меңзері компонентке кірді
MOUSE_EXITED
Тінтуір меңзері компоненттен шықты
MOUSE_MOVED
Тінтуір жылжыған кезде
MOUSE_PRESSED
Тінтуір батырмасы басылды
MOUSE_RELEASED
Тінтуір батырмасы жіберілді
MOUSE_WHEEL
Тінтуір дөңгелегі қозғалғанда
MouseEvent классы InputEvent классының ішкі классы.Оның құрылымы мынандай:MouseEvent(Component дереккөзі,int түр,long қашан,int модификатор, int x, int y, int басулар, boolean Мәзірді шақыру).
Мұнда дереккөз-оқиға туралы хабарлайтын компонентке сілтеме. Оқиға түрі түр параметрімен көрсетіледі.Оқиға болған кездегі жүйелік уақыт қашан деген параметрде беріледі. Модификатор аргументі тінтуір оқиғасы кезінде қандай модификатор пернелері басылғанын көрсетеді. Тінтуір меңзерінің координаттары x және y параметрлерімен беріледі.Басулар саны басу параметрінде беріледі.Мәзірді шақыру жалауы, бұл оқиға осы платформада қалқымалы мәзірді шақыруы керек пе екенін көрсетеді.
Бұл кластың екі жиі қолданылатын әдісі-getX() және getY () әдістері.Олар оқиға кезінде тінтуір жүгіргісінің X және Y координаттарын қайтарады. Олардың нысаны осындай-int getX() int getY().
TranslatePoint () әдісі оқиға орнын өзгертеді. Оның форматы келесідей көрсетілген-void translatePoint(int x, int y) .Мұнда x және y аргументтері оқиғаның бастапқы координаттарына қосылады.
GetClickCount әдісі () осы оқиға үшін тінтуірді неше рет басқан санынын анықтайды. Оның жазылуы келесідей-int getClickCount().
IsPopupTrigger () әдісі осы оқиға ағымдағы платформада қалқымалы мәзірді тудыратынын тексереді. Оның нысаны осындай-boolean isPopupTrigger().
Сондай-ақ, getButton () әдісі бар.Оның жазылуы келесідей-int getButton().Ол оқиғаны тудырған батырманы білдіретін мәнді қайтарады.Қайтарылатын мән MouseEvent класында анықталған тұрақтылардың бірі болады.
WindowEvent классы
Терезе оқиғаларының он түрі бар. WindowEvent класы оларды сәйкестендіру үшін пайдаланылуы мүмкін бүтін константаларды анықтайды.
WindowEvent класымен анықталған тұрақтылар
Тұрақтылар
Сипаттамасы
WINDOW_ACTIVATED
Терезе белсендірілді(активацияланды)
WINDOW_CLOSED
Терезе жабылды
WINDOW_CLOSING
Пайдаланушы терезені жабуды сұрады
WINDOW_DEACTIVATED
Терезе деактивацияланды
WINDOW_DEICONIFIED
Терезе жайылды
WINDOW_GAINED_FOCUS
Терезе енгізу фокусын алды
WINDOW_ICONIFIED
Терезе жабылды
WINDOW_LOST_FOCUS
Терезе енгізу фокусын жоғалтты
WINDOW_OPENED
Терезе ашылды
WINDOW_STATE_CHANGED
Терезенің күйі өзгерді
WindowEvent класы-ComponentEvent классының ішкі классы. Ол бірнеше конструкторларды анықтайды. Біріншісі-WindowEvent(Window дереккөзі, int түр).
Мұнда дереккөз-оқиға туралы хабарлаған нысанға сілтеме. Оқиға түрі тип параметрінде беріледі. Келесі үш конструктор толық бақылауды қамтамасыз етеді.
WindowEvent(Window дереккөз ,int түр, Window басқа)
WindowEvent(Window дереккөз,int түр, int жағдайдан, int жағдайға)
WindowEvent(Window дереккөз,int түр,Window басқа,int жағдайдан,int жағдайға
Мұнда басқа параметр фокус немесе белсендіру оқиғасы кезінде қарама-қарсы терезені анықтайды.Параметр int жағдайдан терезенің алдыңғы күйін анықтайды,int жағдайға терезенің келесі күйін анықтайды.
Бұл класстың жиі қолданылатын әдісі-getWindow (). Ол оқиға туралы хабарлаған Window классының нысанын қайтарады. Оның жалпы нысаны-Window getWindow().
WindowEvent класы қарама-қарсы терезені (фокус оқиғалары немесе белсендіру кезінде), терезенің алдыңғы күйін, сондай-ақ оның ағымдағы күйін қайтаратын әдістерді анықтайды. Бұл әдістер төменде көрсетілген:
Window getOppositeWindow()
int getOldState()
int getNewState()
2.Оқиғаны тыңдаушы интерфейстері
Жоғарыда айтылғандай оқиғаны делегациялау моделі екі бөліктен тұрады,олар:дереккөз және тыңдаушы.Тыңдаушылар java.awt.event пакетінде анықталған бірнемесе бірнеше интерфейстерді жүзеге асырғанда құрылады.Оқиға болған кезде оның дереккөзі тыңдаушыда анықталған тиісті әдісті шақырады және оқиға объектісін аргумент ретінде береді.Келесі кестеде тыңдаушылардың жиі қолданылатын интерфейстері көрсетілген және олар анықтайтын әдістердің қысқаша сипаттамасы берілген.
Интерфейс
Сипаттамасы
ActionListener
Әрекет оқиғаларын қабылдау үшін бір әдісті анықтайды
AdjustmentListener
Теңшеу оқиғаларын қабылдау үшін бір әдісті анықтайды
ComponentListener
Жасыру, жылжыту, өлшемін өзгерту немесе компонентті көрсету үшін төрт әдісті анықтайды
ContainerListener
Компонент контейнерге қосылғанын немесе одан шығарылғаннын білу үшін екі әдісті анықтайды
FocusListener
Пернетақта енгізу фокус компонентін алу немесе жоғалту үшін екі әдісті анықтайды
ItemListener
Элементтің күйін өзгерту уақытын көрсететін бір әдісті анықтайды
KeyListener
Пернені басу, босату немесе таңбаны енгізу үшін үш әдісті анықтайды
MouseListener
Тінтуірдің басуын, тінтуірдің меңзерінің компонент өрісіне кірген сәтін, оның құрамдас бөліктердің бөлінуін, тінтуір батырмаларын басу мен босатуын анықтайтын бес әдісті анықтайды
MouseMotionListener
Сүйреп апару немесе тінтуір қозғалысын тану үшін екі әдісті анықтайды
MouseWheelListener
Тінтуір дөңгелегінің қозғалысын анықтайтын ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz