Saturday 8 March 2014

Penanganan Mouse (Pemograman Java)

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 FieldPenjelasan
buttonTombol yang ditekan atau dilepaskan
xKoordinat x ketika event terjadi
yKoordinat y ketika event terjadi
stateMaskBit 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 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.
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 :

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.MouseDoubleClickMouse di-double click

mouseDown (MouseEvent)SWT.MouseDownTombol mouse ditekan

mouseUp (MouseEvent)SWT.MouseUpTombol mouse dilepaskan
MouseEvent
MouseMove ListenermouseMove (MouseEvent)SWT.MouseMoveMouse berpindah posisi
MouseEvent
MouseTrackListener (dan MouseTrackAdapter)mouseEnter (MouseEvent)SWT.MouseEnterMouse masuk ke wilayah klien

mouseExit (MouseEvent)SWT.MouseExitMouse berada di sekitar klien

mouseHover (MouseEvent)SWT.MouseHoverMouse keluar dari wilayah klien




Contoh Pemogramannya,

// Nama file : MouseClicked.java
// Menampilkan koordinat saat mouse diklik
 
// Mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
// Deklarasi kelas
public 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

Twitter Delicious Facebook Digg Stumbleupon Favorites More