Dasturlash II fanidan 10-ma’ruza
1
Tishqoncha voqiyalari va ularni qayta ishlash
REJA
1.
Sichqoncha Swing komponentasida
2.
public void mousePressed(MouseEvent event)
3.
public void mouseClicked(MouseEvent event)
4.
public void mouseReleased(MouseEvent event)
5.
public void mouseEntered(MouseEvent event)
6.
public void mouseExited(MouseEvent event)
7.
public void mouseDragged(MouseEvent event)
8.
public void mouseMoved(MouseEvent event)
9.
MouseEvent sinfi metodlari
Sichqoncha Swing komponentasida
Ushbu darsda biz sichqonchaning qanday qilib dasturga qo'shilishini bilib
olamiz. Sichqoncha harakati va tugmalar yordamida dastur tomonidan qanday qilib
nazorat qilinishi va ishlatilishini ko'ramiz.
Ushbu darsda biz sichqonchani Swing komponentasida qanday ishlatishni
tasvirlaymiz. Oldingi darslarimizda biz sichqonchani bilvosita tugmalarni bosish
vositasi sifatida ishlatganmiz. Tugmalarni boshqa
usul bilan bosish mumkin
bo'lganligi sababli (sensorli ekranda barmog'ingiz bilan), ushbu dastur
tugmachalarga reaktsiya berdi, ammo ular sichqonchaning o'ziga munosabat
bildirmaydi.
Sichqonchani dasturga to'g'ridan-to'g'ri kiritish uchun biz ba'zi
tarkibiy
qismlarga sichqoncha tinglovchisini qo'shishimiz kerak. Keyin tinglovchi
sichqonchani diqqat bilan kuzatib boradi va agar biron bir voqea sodir bo'lsa,
foydalanuvchi belgilaydigan harakatlarni amalga oshiradi. Bunday hodisalar
sichqonchaning tugmachasini bosishi, sichqonchani tark etishi yoki tarkibiga kirishi,
tarkibiy qism ichida sichqoncha o'rnini o'zgartirishi va hokazo bo'lishi mumkin.
E'tibor bering, tinglovchi sichqonchaning o'zi emas, balki tarkibiy qismga
tayinlanadi. Sichqoncha faqat tarkibiy qism ichida bo'lganida uni kuzatadi.
Ko'pincha sichqoncha tugmachalari yoki sichqoncha
harakati qiziqtiradi,
shuning
uchun
java.awt.event
AWT
kutubxonasida
MouseListener
va
MouseMotionListener
interfeyslari orqali aniqlangan ikkita tinglovchilar mavjud .
Birinchisi sichqonchaning tugmachalarini boshqarish uchun, ikkinchisi esa
harakatni kuzatadi. Swing tarkibiy qismiga sichqoncha tinglovchisini qo'shish uchun
comp.addMouseListener( MouseListener mouseListener);
comp.addMouseMotionListener(MouseMotionListener motionListener);
Oldingi darsimizda biz ActionListener va tegishli ActionEvent-ni taqdim
etdik. Sichqoncha tinglovchilarida sichqonchaning
turli xil harakatlariga mos
Dasturlash II fanidan 10-ma’ruza
2
keladigan ko'proq usullar mavjud. Mavjud bo'lgan maxsus tadbir bu- MouseEvent .
Sichqoncha tinglovchisi
MouseListener interfeysi sichqoncha tugmachalarini ishlatishga va
sichqoncha tinglovchisi tayinlangan tarkibiy qismni kiritishga yoki qoldirishga
munosabat bildirishimizga imkon beradi. Sichqoncha tarkibiy qismga kirganda yoki
undan chiqib ketganda yoki tarkibiy qism ichida sichqoncha tugmasi ishlatilsa, ish
vaqti tizimi MouseEvent-ni yaratadi va tinglovchiga xabar beradi. Voqeaga qarab,
tinglovchilarning turli usullari chaqiriladi. Hodisa ob'ekti usulga argument sifatida
uzatiladi. Hodisa ob'ekti voqea haqida ma'lumotni o'z ichiga oladi. MouseListener
interfeysida 5 usul mavjud, ularning barchasini amalga oshirish kerak:
void mouseClicked(MouseEvent mevt)
void mouseEntered(MouseEvent mevt)
void mouseExited(MouseEvent mevt)
void mousePressed(MouseEvent mevt)
void mouseReleased(MouseEvent mevt)
mouseClicked ( MouseEvent mevt ) - sichqon
tugmasi bosganda ish vaqti
tizimi tomonidan avtomatik ravishda chaqiriladi. Qaysi tugmachani bosilganligini
bilish uchun MouseEvent ob'ektiga qarash kerak .
mouseEntered ( MouseEvent mevt ) - Sichqoncha tinglovchi bilan bog'liq
bo'lgan tarkibiy qismga kirsa, ish vaqti tizimi tomonidan avtomatik ravishda
chaqiriladi.
mouseExited ( MouseEvent mevt ) - Sichqoncha tinglovchi bog'liq bo'lgan
qismni tark etsa, ishga tushirish tizimi tomonidan avtomatik ravishda chaqiriladi.
mousePressed ( MouseEvent mevt ) - bir sichqon tugmasi bosilganda ish vaqti
tizimi tomonidan avtomatik ravishda chaqiriladi. Qaysi tugma bosilganligini bilish
uchun MouseEvent ob'ektiga qarash kerak.
mouseReleased ( MouseEvent mevt ) -Sichqoncha tugmasi chiqsa, ish vaqti
tizimida avtomatik ravishda chaqiriladi. Qaysi tugma chiqarilganligini bilish uchun
MouseEvent ob'ektini ko'rish kerak.
Sichqoncha harakatlarini tinglovchi
MouseMotionListener interfeysi sichqonchani kuzatish usullarini taqdim
etadi. Agar MouseMotionListener Swing komponentiga tayinlangan bo'lsa va
sichqoncha bu komponent ichida bo'lsa, u holda ish vaqti MouseEvent-ni yaratadi
va tinglovchilarni xabardor qiladi. Sichqoncha ko'chirilgan yoki sudralganiga qarab,
tinglovchilarning turli usullari chaqiriladi. Hodisa ob'ekti usulga argument sifatida
uzatiladi. MouseMotionListener ikki usulga ega:
void mouseMoved(MouseEvent mevt)
void mouseDragged(MouseEvent mevt)
mouseMoved ( MouseEvent mevt ) - u tinglovchi uchun bog'liq bir
komponentining ichida sichqon ko'chib bo'lsa avtomatik ravishda chaqiriladi.
Sichqonchaning yangi pozitsiyasini mevt hodisasi ob'ektini tahlil qilish orqali topish
Dasturlash II fanidan 10-ma’ruza
3
mumkin . Agar ish vaqti tizimi sichqonchadan
signal qabul qilsa, sichqonchani
"harakatga keltiradi". Odatda, bu sichqoncha ko'rsatkichining ekranda joylashuvi
kamida bitta pikselga o'zgarishiga olib keladi.
mouseDragged(MouseEvent mevt)- Sichqoncha tugmachasi bosilganda
sichqonchani siljitilsa, avtomatik ravishda chaqiriladi.
Ya’ni qisqa qilib aytganda
MouseListener
va
MouseMotionListener
interfeysi usullari
MouseListener
interfeysi usullari