Swing (5) : Event Handling

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Apa itu Event ?

Perubahan keadaan suatu objek dikenal sebagai event, jadi event dideskripsikan sebagai perubahan keadaan suatu sumber. Event dimunculkan sebagai hasil dari interakasi pengguna dengan komponen grafik user interface, misalnya mengklik suatu tombol, menggerakkan mouse, memasukkan suatu karakter melalui keyboard, memilih item dari list, menscroll halaman.

Tipe-tipe Event

Event dapat digolongkan kedalam dua kategori :

  • Foreground Events – Adalah event yang membutuhkan interaksi langsung pengguna. Dibangkitkan sebagai konsekuensi dari orang yang berinteraksi dengan komponen grafis pada GUI, misalnya mengklik tombol, menggerakan mouse memasukkan karakter lewat keyboard, memilih suatu item dari daftar, menscroll halaman dan lain-lain.
  • Background Events – Adalah event yang membutuhkan interaksi dari enduser. Misalnya interupsi sistem operasi, kegagalan hardware atau software, habis waktu dan selesainya suatu operasi.

Apa yang dimaksud Event Handling ?

Event Handling adalah mekanisme yang mengendalikan event dan menentukan apa yang terjadi jika suatu event berlangsung. Mekanisme ini memiliki kode yang dikenal sebagai event handler yang dieksekusi saat suatu event terjadi. Java menggunakan Delegation Event Model untuk menangani event. Model ini  memberikan mekanisme standar untuk membangkitkan dan menangani event.

Delegation Event Model memiliki hal-hal kunci sebagai berikut :

  • Source – Adalah suatu objek tempat terjadinya event. Source atau sumber bertanggung jawab untuk menyediakan informasi tentang suatu event pada handler-nya. Java menyedikan class untuk objek sumber
  • Listener – Juga dikenal sebagai event handler listener. Bertangung jawab untuk membangkitkan respon terhadap suatu event. Dari sudut pandang implementasi Java, listener juga adalah suatu objek. Listener menunggu hingga dia menerima event. Sekali event diterima, listener memproses event dan memberikan keluaran.

Keuntungan dari pendekatan ini adalah bahwa logika antarmuka pengguna sepenuhnya terpisah dari logika yang membangkitkan event. Element user interface dapat mendelegasikan pemrosessan suatu event pada potongan kode yang terpisah. Listener perlu didaftarkan dengan objek source sehingga listener dapat menerima notifikasi event. Ini adalah cara yang efisien dalam menangani event dikarenakan notifikasi envet hanya dikirimkan pada listener yang ingin menerimanya..

Langkah-langkah yang terjadi dalam event handling

  • Pengguna mengklik tombol dan event dibangkitkan
  • Kemudian objek yang bertanggung jawab terhadap class event dibuat secara otomatis dan informas tentang sumber dan event dikumpulkan kedalam objek yang sama
  • Objek event diforward ke metode class listener yang didaftarkan
  • Method kemudian dieksekusi dan memberikan keluaran

Hal-hal yang perlu diingat terkait Listener

  • Dalam rangka merancang suatu class listener kita harus mendevelop beberapa antarmuka listener. Antarmuka listener ini memperkirakan beberapa metode callback abstract public yang mesti diimplementasikan oleh class listener.
  • Jika kita tidak mengimplementasikan interface predefined maka class kita tidak dapat bertindak sebagai class listener untuk sebuah objek sumber

Metode callback

Adalah metode yang disediakan oleh provider API dan didefinisikan oleh programmer aplikasi dan dipanggil oleh developer aplikasi. Disini metode callback mewakili suatu metode event. Untuk merespon suatu event java, JRE akan menyalakan metode callback. Semua metode callback disediakan didalam antarmuka listener.

Jika suatu komponen ingin beberapa listener merespon event yang terjadi pada dirinya, maka source mesti meregister dirinya sendiri ke listener.

Contoh lebih jelas secara praktek dapat anda lihat di tutorial berikutnya : Membuat Contoh Aplikasi Tombol Event Handling

About Reza Ervani
Adalah pendiri programming.rezaervani.com -

About Reza Ervani 381 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.