GUI (Graphical User Interface) adalah antarmuka pada sistem operasi atau komputer yang
menggunakan menu grafis agar mempermudah para penggunanya untuk berinteraksi dengan
komputer atau sistem operasi.
GUI merupakan antarmuka pada sistem operasi komputer yang menggunakan menu grafis.
Pada awal diciptakan, komputer dijalankan dengan menggunakan perintah yang diketik pada
layar monitor menggunakan keyboard. Hanya orang2 tertentu sajalah yang bisa mengoperasikan
komputer. Akhirnya para ahli terdorong untuk dapat menciptakan sesuatu yang dapat digunakan
oleh orang kebanyakan dengan cara yang praktis dan mudah diingat. Kemudian lahirlah yang
disebut GUI (yang seperangkat aplikasinya menampilkan semua menu, ikon dan alat penunjuk
lain yang menggantikan perintah ketik di shell. Hal ini membuat pengguna komputer menjadi
lebih mudah untuk mengoperasikan sebuah perangkat dari pada mengingat perintah yang
menggunakan teks pada sebuah kotak command tertentu. GUI pertama kali digunakan pada
komputer yang diproduksi oleh APPLE yaitu Machintos dengan steve Jobs sebagai
penggagasnya.
Keuntungan GUI
Kekurangan GUI
Dalam perkembangannya java sudah menngembangkan berbagai macam komponen, dan yang
terakhir di beri nama Java Swing, pertama java menggembangkan proyek yang di beri nama Java
Foundation Classes (JVC), dalam JVC pertama java menggeluarkan AWT(Abstract Window
Toolkit), setelah terus berkembang java mengeluarkan ersi yang lebih baru yang di beri nama
Java Swing.
Akan saya bahas satu2 tentang komponen2 yang sering di pakai dalam membuat program
sederhana
1. Label
Label berfungsi untuk menuliskan sesuatu di frame yang kita buat, nama default JLabel
2. Button
Button digunakan untuk mengeksekusi sebuah perintah, jika button di pencet maka proses akan
berjalan, nama default JButton
3. Text Field
Text Field marupakan salah satu cara untuk mengisikan suatu inputan dalam program, nama
default JTextfield
4. Text Area
Text Area biasanya digunakan untuk menampilkan hasil output dari program, nama default
JTextarea
5. Combo Box
Combo Box merupakan salah satu cara inputan juga. jika combo box di pencet, maka akan keluar
berbagai pilihan untuk di proses, nama default JCombobox
6. Radio Button
radio button juga salah satu cara inputan dalam program, tetapi dalam penggunaannya berbeda
dengan combo box, radio button digunakan jika pilihan yang di sediakan sedikit, maka akan lebih
efektif jika menggunakan radio button, berbeda dengan combo box yang hjerus click 2 kali untuk
memilih, radio button cukup sekali pilihan, dan hanya boleh satu pilihan yang di pilih, maka
digunakan radio button group agar hanya satu yang bisa di pilih, nama default JRadiobutton
7. Check box
Check box juga merupakan salah satu cara inputan, mirip dengan radio button, tetapi check box
memperbolehkan user untuk memilih lebih dari satu pilihan, jadi check box di gunakan untuk
menjawab petanyaan yang memperbolehkan lebih dari satu jawaban, nama defaultnya
jCheckbox.
Komponen Swing
Komponen Swing
Komponen GUI akan ditampilkan dalam hirarki container dan menjadikan top level container
sebagai container root nya. Setiap komponen GUI hanya dapat dimuat pada satu top-level
container. Dan setiap top-level container memiliki satu content pane yang berisi
komponenkomponen GUI
Container Hierarky
Setiap komponen GUI berbasis swing paling tidak memiliki satu container
hierarky dengan JFrame sebagai rootnya.
Jika sebuah aplikasi memiliki satu window utama dan dua dialog artinya aplikasi
tersebut memiliki tiga container hierarchy dan juga tiga top-level container
Satu container hierarchy memiliki Jframe sebagai root, dan dua yang lain
memiliki JDialog sebagai root Pemrograman Berorientasi Objek 9
Kelas JFrame
Merupakan container perantara antara Top Level Container dengan Atomic Component. Contoh
JPanel
JTabbedPane
JToolbar, dsb
Class Adapter
Sebuah interface terkadang bisa memiliki banyak metoda dan tidak semua metoda yang
dideklarasikan ulang tersebut digunakan dan diberi penangan event (handler). Pendeklarasian
ulang metoda dari interface tanpa penanganan event (metoda kosong) merupakan pemborosan
waktu dalam pemulisan kode (coding).
Untuk mengatasi hal tersebut, Anda dapat menggunakan kelas adapter. Kelas-kelas adapter
adalah kelas yang juga mengimplementasikan interface yang bersesuaian dengan menyediakan
implementasi standar untuk semua metoda interface berupa blok kosong tanpa pernyataan.
Karena adapter adalah sebuah kelas, maka obyek pendengar event (event listener) adalah kelas
atau inner class yang merupakan turunan langsung dari kelas-kelas adapter tersebut. Adapter
adalah kelas yang mengimplementasikan interface yang bersesuaian sehingga secara tidak
langsung kelas turunannya sudah mengimplementasikan interface yang bersesuaian pula.
Dengan obyek pendengar event merupakan turunan langsung dari kelas adapter, maka Anda tidak
perlu mendeklarasikan ulang semua metoda interface, cukup metoda yang diberi penangan event
(handler) saja. Berikut ini adalah tabel dari beberapa kelas adapter:
Penanganan Event atau Event Handler ialah kemampuan javascript untuk mendeteksi Event atau kejadian -
kejadian yang terjadi di halaman web, kemudian menangani atau melakukan suatu proses jika terdeteksi
suatu event. Event di web bisa macam-macam, seperti klik,double klik, menggerakkan mouse, bila pointer
mouse berada diatas objek HTML, dan sebagainya.
Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh
event source.
Event Handler merupakan method yang menerima event object dan melakukan respond
yang sesuai dengan event object tersebut.
Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap
type event mempunyai interface yang bersesuaian. Listener tersebut harus
diimplementasikan oleh class yang akan meng-handle event
Event Source merupakan pembangkit / trigger sebuah event objects
Setiap event object mempunyai type event yang berbdea beda. sehingga kita harus menentukan type event sebelum
menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
berikut ini type type event yang ada di Java :
ActionEvent
ItemEvent
WindowEvent
ContainerEvent
ComponentEvent
FocusEventTextEvent
KeyEvent
MouseEvent
AdjustmentEvent
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user.
Untuk memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya.
Event Source
Event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika user
menekan tombol, event source dalam hal ini adalah tombol.
Event Listener/Handler
Event listener menerima berita dari event-event dan proses-proses interaksi user. Ketika tombol
ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk
user.
Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah
object event diciptakan. Object berisi semua informasi yang perlu tentang event yang telah
terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik.
Ada beberapa class event untuk kategori yang berbeda dari user action. Sebuah event object
mempunyai tipe data mengenai salah satu dari class ini.
Pada awalnya, sebuah listener seharusnya diregistrasikan dengan sebuah source sehingga dapat
menerima informasi tentang event-event yang terjadi pada source tersebut. Hanya listener yang
sudah teregistrasi yang dapat menerima pemberitahuan event-event. Ketika telah teregistrasi,
sebuah listener hanya tinggal menunggu sampai event terjadi.
Ketika sesuatu terjadi dengan event source, sebuah event object akan menguraikan event yang
diciptakan. Event kemudian ditembak oleh source pada listener yang teregistrasi.
Saat listener menerima sebuah event object (pemberitahuan) dari source, dia akan bekerja.
Menerjemahkan pemberitahuan dan memproses event yang terjadi.
Class-Class Event
Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya. Akar dari hirarki
class event adalah class EventObject, yang dapat ditemukan pada paket java.util. Immediate
subclass dari class EventObject adalah class AWTEvent. Class AWTEvent didefinisikan pada
paket java.awt. Itu merupakan akar dari semua AWT-based events.