Penanganan Mouse (Pemograman Java)
Semua sistem operasi di mana SWT diimplementasikan mendukung perangkat tunjuk. Biasanya berbentuk mouse, akan tetapi bisa jadi berupa trackball, trackpad, atau jenis perangkat keras lainnya. Pada komputer genggam, perangkat tunjuk bisa jadi berupa stylus. Untuk mempermudah pembahasan, kita akan gunakan mouse sebagai perangkat tunjuk, tidak peduli bagaimana perangkat aslinya.Posisi suatu mouse biasanya digambarkan dalam bentuk ikon kecil pada layar yang disebut kursor. Hal ini berlaku untuk semua platform, kecuali pada Windows CE, karena perangkat Windows CE biasanya berupa perangkat tunjuk "langsung", seperti stylys, yang tidak membutuhkan kursor.
Mouse biasanya memiliki tiga tombol (kecuali pada Macintosh yang hanya memiliki satu tombol, walaupun sebenarnya mouse lebih dari 1 tombol pun bisa digunakan). Mouse digunakan untuk menunjuk, klik, geser (drag) dan memilih komponen kontrol GUI. Bisa juga digunakan untuk menampilkan menu konteks yang biasanya ditampilkan dengan mengklik kanan suatu mouse. Perilaku "drag-and-drop" mouse kurang lebih sangat bergantung pada platformnya.
Ketika kita menggeser mouse, kursor akan berbah bentuk, tergantung dari kontrol apa di bawahnya. Misalnya, widget teks akan mengubah tampilan kursor seperti huruf I untuk menunjukkan bahwa user bisa mengetikkan sesuatu pada widget tersebut. Di dalam kursor, ada titik pusat yang menunjukkan koordinat x dan y suatu mouse ketika event pada mouse terjadi.
Event pada Mouse
Ketika
 tombol mouse ditekan atau mouse digerakkan, event mouse dibuat dan akan
 diberikan kepada widget yang ada di bawahnya. Akan tetapi ketika tombol
 mouse ditekan dan ditahan (terus ditekan), dan mouse berada di luar 
widget (mungkin ada di widget lain atau pada aplikasi lain di desktop), 
eventnya akan diberikan kepada widget awal di mana mouse tersebut 
ditekan. Pengalihan event sementara ini disebut pengambilan mouse. 
Widget yang menerima event disebut widget pengambil. Pengambilan mouse 
terhadi secara otomatis pada SWT. (Ini mungkin bukan sesuatu masalah, 
akan tetapi sebagai informasi saja kepada Anda).
Tabel - Isi Event Mouse ketika suatu tombol mouse ditekan, dilepaskan atau mouse digeser
| Nama Field | Penjelasan | 
| button | Tombol yang ditekan atau dilepaskan | 
| x | Koordinat x ketika event terjadi | 
| y | Koordinat y ketika event terjadi | 
| stateMask | Bit mask yang menyatakan kondisi keyboard dan mouse sebelum event terjadi | 
Ketika
 mouse ditekan atau dilepas, field bernama "button" akan diisi oleh 
tombol mana yang ditekan. Tombol mouse diberi nomor dari kiri ke kanan 
yang dimulai dari 1. Untuk user kidal (dan mengkonfigurasi sistem 
operasi untuk orang kidal), penomoran tombol tetap sama, akan tetapi 
dimulai dari kanan ke kiri. Pemetaan tombol untuk orang kidal ini tidak 
tampak oleh SWT dan aplikasi kita, karena dilakukan secara otomatis oleh
 sistem operasi.
Ketika terjadi 
event pada mouse, koordinat x dan y-nya juga dilaporkan dalam event. 
Koordinat yang dilaporkan adalah koordinat relatif widget ketika event 
tersebut dibuat (bukan koordinat global layar atau aplikasi kita). 
Karena user mungkin telah memindahkan mouse setelah menekan tombol, maka
 lokasi sebenarnya ketika event ini ditangani mungkin berbeda dengan 
ketika event dibuat. Hal ini untuk menghindari program kita untuk 
bertindak terlalu sensitif terhadap pergerakan mouse. (Jika kita 
membutuhkan lokasi yang aktual pada saat-saat tertentu, kita bisa 
menggunakan metode 
getCursorLocation() yang dimiliki oleh kelas Display.)
Event pada mouse juga menggunakan field lain yang dinamakan 
Berikut
 ini adalah event pada mouse yang disediakan oleh SWT. Seperti 
disebutkan pada bagian sebelumnya, event dan listener SWT terdiri dari 
event/listener tanpa tipe dan event/listener bertipe. Keduanya disarikan
 dalam tabel berikut :stateMask untuk menunjukkan keadaan mouse. Seperti pada penanda tombol, stateMask
 berisi keadaan mouse sebelum terjadinya suatu event. Misalnya, jika 
tidak ada tombol mouse yang ditekan atau tombol keyboard lain yang 
ditekan ketika tombol kiri mouse ditekan, maka event mouse akan diisi 
dengan button bernilai 1 dan stateMask bernilai 0. stateMask tidak berisi "tombol 1". Akan tetapi ketika terjadi event lain ketika mouse kiri sedang ditekan, maka stateMask akan berisi 1.| Kelas Event (event bertipe) | Interface/Kelas Listener (listener bertipe)  | Metode (listener bertipe) | Jenis event (event tanpa tipe) | Penjelasan | |
| MouseEvent | MouseListener (dan MouseAdapter) | mouseDoubleClick (MouseEvent) | SWT.MouseDoubleClick | Mouse di-double click | |
| mouseDown (MouseEvent) | SWT.MouseDown | Tombol mouse ditekan | |||
| mouseUp (MouseEvent) | SWT.MouseUp | Tombol mouse dilepaskan | |||
| MouseEvent | MouseMove Listener | mouseMove (MouseEvent) | SWT.MouseMove | Mouse berpindah posisi | |
| MouseEvent | MouseTrackListener (dan MouseTrackAdapter) | mouseEnter (MouseEvent) | SWT.MouseEnter | Mouse masuk ke wilayah klien | |
| mouseExit (MouseEvent) | SWT.MouseExit | Mouse berada di sekitar klien | |||
| mouseHover (MouseEvent) | SWT.MouseHover | Mouse keluar dari wilayah klien | 
Contoh Pemogramannya,// Nama file : MouseClicked.java// Menampilkan koordinat saat mouse diklik// Mengimpor kelasimport java.awt.*;import java.awt.event.*;import javax.swing.*;// Deklarasi kelaspublic class MouseClicked extends JFrame {      private int koX, koY;   private Font font;   // Konstruktor kelas MouseClicked   public MouseClicked() {      setTitle("Kelas MouseClicked");      addMouseListener(new PenanganMouse());      setSize(280, 130);      setVisible(true);   }   // Deklarasi inner class PenanganMouse   class PenanganMouse extends MouseAdapter {      public void mouseClicked(MouseEvent e) {         koX = e.getX();         koY = e.getY();         repaint();      }   }   // Metoda paint untuk menggambar string   public void paint(Graphics g) {          super.paint(g);      font = new Font("Tahoma", Font.BOLD, 14);      g.setFont(font);      g.setColor(Color.RED);      g.drawString("[" + koX + ", " + koY + "]", koX, koY);   }   // Metoda main   public static void main(String[] args) {      MouseClicked frame = new MouseClicked();      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   }}
langkah pertama membuat class MouseClicked : Source codenya: Outputnya Setelah Di Compile :
Sumber :
http://www.termasmedia.com/2012-05-29-02-56-17/java/298-penanganan-mouseevent-di-java-mouseclicked.html



0 comments:
Post a Comment