Java оқиғаларын өңдеу моделі
Біз осыған дейін құрған компоненттердің барлығы да жақсы шықты, бірақ олар еш пайдасыз болар еді, себебі біз қолдануышылық интерфейстің осынау басқарушы элементтерінің көмегімен жүзеге асатын қолданушының енуін қалай өңдеу қажеттігі туралы айтқан жоқпыз.
Әрбір компонент Component класының қолданыстағы handleEvents әдісінің үндемеуі бойынша орындалуымен шақырылатын нақты әдістерді орналастырып, жаңалықтарды өңдей алады. Бұл әдіс мүмкін болған жаңалықтардың барлығын сипаттайтын Event класының объектісімен шақырылады. Ең жиі қолданылатын оқиғалар, мысалы, тышқанмен және пернетақтамен байланысты оқиғалар Component класының өзге әдісімен диспетчерленеді.
Тышқанмен байланысты барлық оқиғалар түпнұсқа оқиғасының көшірмесімен, сонымен бірге осы оқиға орындалған х және у координаталарымен шақырылады.
mouseEnter тышқан компонентке кірген кезде шақырылады.
mouseExit тышқан компонент облысынан шығу барысында шақырылады.
mouseMove тышқанның компонент облысында орын ауыстыруы барысында шақырылады.
mouseDown тышқанның батырмасын басқан кезде шақырылады.
mouseDrag тышқанның батырмасы басылған күйде жылжыған кезде шақырылады.
mouseUp тышқан батырмасын босатқан кезде шақырылады.
Осыған ұқсас, keyDown және keyUp пернені әрбір басқан және жіберген сайын шақырылады. Оқиға әдіске басылған батырманың кодымен бірге беріледі. Оқиғаны дәл қазіргі сәтте әлдебір модификатор-пернелер басылып тұр ма, жоқ па – соңы қарау үшін тексеруге болады, бұл мақсат үшін, сонымен қатар, shiftDown, controlDown және metaDown әдістерін қолдануға болады. Event класында PGUP және HOME сияқты символдық атауларды қолдануға мүмкіндік беретін ондаған константалар анықталған.
Сонымен, арнайы оқиғалармен, мысалы, Button, Scrollbar және Menu компоненттерінің кері шақыруларымен (callback) жұмыс жасау үшін сізге action әдісін араластыруға тура келеді. Бұл әдіс бастапқы оқиғамен және осы оқиғаны құрған қолданушылық интерфейс компоненті түрінде келген екінші параметрмен шақырылады. Сіз бұл объектіні талдауыңыз қажет, қай компонент сізге оқиға жібергенін түсінуіңіз керек, мұнан соң басқаруды осыған сәйкес өңдеуші компонентке беру қажет. Типті келтірерден бұрын берілген объектінің нақты бір класқа жататындығын, мысалы Button класына, анықтау үшін сіз instanceof операторын қолдана аласыз.
Ал мында оқиғалар өңдеуінің мысалы көрсетілген. Біз Label объектісін доппен қуаласып ойнау ойынының мысалына қостық, сонымен қатар, action әдісін батырмалар басылған кезде пайда болатын оқиғаларды өңдеу үшін орналастырдық.Дәл осындай механизмді енгізуді Component ішкі класының кез-келгені арқылы басқару үшін қолдануға болады.
Достарыңызбен бөлісу: |