Sumber peristiwa acara mouse sering dikaitkan dengan wadah. Bahasa Java menyediakan dua antarmuka untuk menangani acara tikus: MouseListener dan antarmuka MousemotionListener.
Antarmuka MouseListener
Antarmuka MouseListener dapat menangani 5 jenis acara mouse: tekan mouse, lepaskan mouse, klik mouse, masukkan mouse, dan keluar dari mouse. Metode yang sesuai adalah:
(1) getx (): koordinat x mouse
(2) gety (): koordinat y mouse
(3) getModifiers (): Dapatkan tombol kiri atau kanan mouse.
(4) getClickCount (): berapa kali mouse diklik.
(5) getSource (): Dapatkan sumber acara di mana mouse terjadi.
(6) AddMouseListener: Tambahkan monitor.
(7) RemovemouseListener: Lepaskan monitor.
Metode untuk mengimplementasikan antarmuka MouseListener adalah:
(1) mousepressed (MouseEvent E);
(2) Mousereleased (MouseEvent E);
(3) mouseentered (MouseEvent E);
(4) mouseExited (MouseEvent E);
(5) mouseklik (mouseEvent E);
[Contoh] Applet mengatur area teks untuk merekam serangkaian acara mouse. Ketika mouse memasuki jendela applet, area teks menampilkan "mouse datang"; , ketika mouse ditekan, ketika diklik dua kali, area teks menampilkan "Klik dua kali pada mouse"; Program ini juga menampilkan lingkaran merah, dan ketika mouse diklik, jari -jari lingkaran akan terus tumbuh lebih besar.
impor java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; kelas mypanel memperluas jpanel {public void print (int r) {grafik g = getGraphics (); G.Clearrect (0,0, this.getWidth (), this.getHeight ()); TS MouseListener {JTextArea Teks; Buka "," Klik dua kali pada mouse "}; myWindow (string s) {super (s); wadah con = this.getContentPane (); con.setlayout (gridlayout baru (2,1)); this.setsize ( 200.300); AddMo Uselistener (ini); mousestates [mouseflg]+", posisinya adalah:"+x+","+y+"/n"); = E.); voi d mouseEntry (mouseEvent e) {x = e.getx (); = E.Gety (); );
Peristiwa mouse dapat terjadi pada komponen apa pun: entri mouse, keluar mouse, tekan mouse, dll. Misalnya, tambahkan tombol ke program di atas dan tambahkan monitor mouse ke objek tombol, ubah metode init () dalam program di atas ke formulir berikut, yaitu, dapat menunjukkan semua acara mouse pada tombol.
Tombol Jbutton; public void init () {Button = JBUTTON BARU ("Acara mouse juga dapat terjadi pada tombol"); tombol.
Jika program ingin lebih mengetahui bahwa tombol mouse kiri atau kanan ditekan atau diklik, tombol mouse kiri atau kanan mouse dapat ditentukan oleh konstanta tombol1_mask dan tombol3_mask di kelas InputEvent. Misalnya, ekspresi berikut menentukan apakah tombol mouse kanan telah ditekan atau diklik kanan:
E.GetModifiers () == InputEvent
Antarmuka MousemotionListener
Antarmuka MousemotionListener menangani dua peristiwa: menyeret mouse dan menggerakkan mouse.
Cara mendaftarkan monitor adalah:
AddMouseMotionListener (monitor)
Ada dua metode antarmuka untuk diimplementasikan:
(1) MouseDragged (MouseEvent E)
(2) Mousemoved (MouseEvent E)
[Contoh] Aplikasi yang mengubah bilah gulir secara serempak dengan jendela tampilan. Ada persegi di jendela. batang. Sebaliknya, jika slider scrollbar dipindahkan, posisi tampilan kotak di jendela juga akan berubah.
impor javax.swing.*; impor java.awt.*; impor java.awt.event.*; kelas myWindow memperluas jframe {public mywindow (string s) {super (s); Con .setlayout (BorderLayout () baru); ); , Borderlayout. dimensi baru (500.300); int) ((float) x/(float) getSize (). width)*100.0); *100.0); yscrollbar.addadjustmentlistener (ini); .fillrect (0,0, size.width, size.height); mouse eexited (mouseEvent e) {} public void mouseclicked (mouseEvent e) {} public void mouserelease (mouseEvent e) {} public void mousemoved (mouseEvent e) {} public mo mo USEPRESSED (mouseevent e) {x = e.getx ); y); .width); Contoh6_9 {public static void main () {myWindow myWindow = myWindow baru ("Program skema scrollbar");
Dalam contoh di atas, jika Anda hanya perlu mengubah posisi tampilan konten dengan menggeser slider, Anda dapat menggunakan jscrollpane panel gulir. Jika demikian, pembuatan dan kontrol scrollbars dapat dihindari dan secara langsung diimplementasikan secara internal oleh jscrollpane. Lihat definisi MyWindow yang dimodifikasi berikut:
Kelas MyWindow memperluas JFRame {public mywindow (string s) {super (s); ; () {Return New Dimension (400.400);
Bentuk pointer mouse juga dapat dikontrol oleh program, dan metode setCursor () dapat mengatur bentuk pointer mouse. Misalnya, setCursor kode (cursor.getPredefinedCursor (cursor.wait_cursor)).