Post on 08-Jan-2017
LAPORAN PRAKTIKUMBAHASA PEMROGRAMAN 2
MODUL II
DISUSUN OLEHNAMA : DEVINIM : 2012081043KELAS : TI2012A
LABORATORIUM KOMPUTERFAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN2014
I. DASAR TEORI
Selain package java.awt, java juga memiliki package javax.swing untuk
membuat komponen GUI. Swing lebih portable daripada AWT karena
beberapa komponennya bersifat multiplatform sehingga disebut juga
komponen lightweight.
Komponen Swing
Komponen-komponen Swing dapat dibagi menjadi beberapa kategori,
yaitu:
1. Root Container
Nama Container Deskripsi
JWindow Merupakan top level container tanpa border, title bar, atau fungsi manajemen window lainnya.
JFrameMerupakan top level container dan dilengkapi dengan border, title bar, atau fungsi manajemen window lainnya. Digunakan sebagai window aplikasi.
JDialog
Merupakan top level container dan dilengkapi dengan border, title bar, atau fungsi manajemen window lainnya. Digunakan sebagai window sementara untuk mengambil input dari user.
JApplet Container yang disisipkan (embedded) ke dalam aplikasi lainnya.Digunakan pada web browser.
JInternalFrame Container lightweight yang mengemulasikan fitur dari native frame.
2. Label dan Button
Komponen Swing
Padannya dengan komponen AWT Deskripsi Komponen Swing
JLabel Label Teks singkat yang diletakan pada komponen
AbstractButton tidak ada Merupakan kelas abstract dari semua komponen Button
JButton Button Merupakan push button
JToggleButton tudak ada Mengimplementasikan Button dengan dua kondisi/state
JCheckBox Checkbox tanpa CheckboxGroup
Mengimplementasikan item CheckBox
JRadioButton Checkbox dengan CheckboxGroup
Mengimplementasikan item RadioButton
JMenuItem MenuItem Mengimplementasikan Item dalam menu item
JMenu Menu Mengimplementasik suatu menuJCheckBoxMenuItem CheckBoxMenuItem Mengimplementasikan
CheckBox di dalam menuJRadioButtonMenuItem tidak ada Mengimplementasikan
RadioButton di dalam menu
3. Komponen Lightweight
Komponen Swing
Lightweight
Padannya dengan komponen AWT Deskripsi Komponen Swing
JPanel Panel General Purpose container
JMenuBar MenuBarDigunakan untuk membuat bar menu yang mengandung komponen JMenu
JToolBar tidak adaContainer untuk menempatkan menu/fungsi-fungsi yang akan digunakan
JScrollBar Scrollbar Scrollbar
JSlider Scrollbar Komponen yang dapat digeser-geser posisinya.
JProgressBar tidak adaKompone yang dapat mengindikasikan kemajuan suatu proses
JList List List dari item-itemJComboBox Choice
JSeparator tidak adaKomponen yang menyediakan garis pemisah diantara komponen
4. Komponen Text
Komponen Swing Text
Padannya dengan komponen AWT Deskripsi Komponen Swing
JTextComponent TextComponent Merupakan kelas abstract untuk semua kompinen text
JTextField TextFieldKomponen untuyk menampungtext singkat (satu baris) yang dapat diedit.
JPasswordField TextField dengan set karakter echo
Komponen sebagai input password
JTextArea TextAreaKompone yang dapat menampung text berjumlah lebih dari satu baris dan dapat diedit.
JEditorPane tidak ada Komponen untuk mengedit
barbagai jenis text.
JTextPane tidak adaKomponen untuk mengedit berbagai jenis text dengan banyak style.
5. Komponen Space-saving
Komponen Swing Space-
saving
Padannya dengan komponen AWT Deskripsi Komponen Swing
JScrollPane ScrollPane Digunakan untuk men-scroll komponen yang besar.
JTabbedPane tidak adaDigunakan untuk membuat pilihan multiple page dengan tombol tab.
JSplitPane tidak ada Untuk meng-adjust pembagi di antara dua komponen.
6. Komponen dengan Model Kompleks
Komponen Swing Model
Kompleks
Padannya dengan komponen AWT Deskripsi Komponen Swing
JTable tidak ada Merepresentasikan data dalam tabel dua dimensi.
JTree tidak ada Merepresentasikan set data, seperti pada windows explorer
7. Komponen yang tersusun dari komponen lain
Komponen Swing
Padannya dengan komponen AWT Deskripsi Komponen Swing
JFileChooser FileDialog Mengijinkan user untuk memilih satu atau lebih file atau direktori.
JColorChooser tidak ada Mengijinkan user untuk memilih suatu warna dari template warna.
JOptionPane tidak ada Menampilkan suatu list pilihan.
Event Handling
Event Handling adalah suatu metode untuk menangani sebuah event/aksi yang diberikan pengguna kepada suatu komponen GUI. Event adalah suatu peristiwa yang dipicu oleh pengguna pada suatu komponen,
misalnya tombol ditekan. Dua paket yang biasa digunakan menangani kejadian adalah java.awt.event dan java.swing.event. Event handling dalam menangani event terbagi menjadi 2 macam yaitu Event Source, Event Listener atau Event Handler.
1. Event Source
Event Source adalah komponen yang mendapatkan suatu event yang kemudian ditangkap oleh Event Listener. Event Source dapat dibedakan dari penamaan komponen itu sendiri, misalnya tombolSimpan, tombolhapus, dan lainnya. Dengan penamaan Event Source ini, Sebuah Event Listener akan dapat mendeteksi dari mana Event Listener tersebut berasal. Jadi, Event source adalah suatu objek yang membangkitkan event. Sebagai contoh, pada saat user melakukan klik terhadap objek button, maka button dianggap sebagai event source.
Event source harus mendaftarkan listener. Hal ini dilakukan agar listener dapat atau mampu mendengarkan dan menproses event-event yang terjadi pada objek bersangkutan. Untuk mendaftarkan listener ke dalam event source, kita harus menggunakan bentuk umum sebagai berikut :
Public void addTypeListener (TypeListener eventListener)
Dalam hal ini, Type adalah event yang terjadi. Sebagai contoh, method yang digunakan untuk mendaftarkan listener yang berkaitan dengan keyboard akan dinamakan dengan addKeyListener(). Begitu pula untuk mendaftarkan listener yang berkaitan dengan mouse, methodnya akan dinamakn dengan addMouseMotionListener().
Listener yang sudah didaftarkan ke dalam event source dapat dipindahkan dengan menggunakan bentuk umum berikut :
Public void removeTypeListener(TypeListener eventListener)
Type menunjukkan tipe event yang terjadi pada objek yang berperan sebagai event source.
2. Event Listener
Event listener adalah objek yang diberitahu pada saat suatu event terjadi pada event source. Event listener diimplementasikan ke dalam bentuk interface. Dengan demikian, untuk mengimplementasikan
salah satu listener tertentu, perlu mendefinisikan method yang terdapat pada interface bersangkutan. Sebagai contoh, interface ActionListener mendeklarasikan sebuah method abstrak dengan nama actionPerformed(). Jadi, apabila ingin membuat kelas yang mengimplementasikan interface ActionListener, maka harus mendefinisikan method actionPerformed() didalam kelas yang dibuat. Java telah menyediakan sekumpulan interface yang digunakan sebagai event listener. Interface – interface tersebut tersimpan dalam paket java.awt.event. dengan demikian, apabila ingin membuat event handler pada program GUI yang dibuat maka perlu mengimport packages tersebut.
Event Listener digunakan untuk menangkap event yang terjadi pada komponen/Event Source. Dibawah ini disajikan beberapa listener yang dapat digunakan dalam mendeteksi event.
Interface – interface pada event Listener
Tabel dibawah ini menunjukkan beberapa listener interface yang biasanya digunakan :
ActionListener Mendefinisikan sebuah method untuk menangani terjadinya event ActionEventvoid actionPerformed(ActionEvent e)
AdjustmentListener Mendefinisikan sebuah method untuk menangani terjadinya event AdjustmentEvent
ComponentListener Mendefinisikan empat mthod untuk menangani terjadinya event Componentvoid componentResize(ComponentEvent e)void componentMoved(ComponentEvent e)void componentShown(ComponentEvent e)void componentHidden(ComponentEvent e)
ContainerListener Mendefinisikan dua method untuk menangani terjadinya event ContainerEvent.
FocusListener Mendefinisikan dua method untuk menangani terjadinya event FocusEventvoid focusGained (FocusEvent e)void focusLost (FocusEvent e)
ItemListener Mendefinisikan sebuah method untuk menangani terjadinya event ItemEvent
KeyListener Mendefinisikan tiga method untuk menangani terjadinya event KeyEventvoid KeyPressed(KeyEvent e)void KeyReleased(KeyEvent e)
void KeyTyped(KeyEvent e)MouseListener Mendefinisikan lima method untuk menangani
terjadinya event MouseEventvoid mouseClicked (MouseEvent e)void mouseEntered (MouseEvent e)void mouseExited (MouseEvent e)void mousePressed (MouseEvent e)void mouseReleased (MouseEvent e)
MouseMotionListener Mendefinikan dua method untuk menangani terjadinya event mouseEvent (pada saat mouse di-drag atau dipindahkan)void mouseDragged(MouseEvent e)void mouseMoved(MouseEvent e)
TextListener Mendefinisikan sebuah method untuk menangani terjadinya event TextEventvoid textChanged(TextEvent e)
WindowListener Mendefinisikan tujuh method untuk menangani terjadinya event WindowEventvoid windowActived(WindowEvent e)void windowClosed(WindowEvent e)void windowClosing(WindowEvent e)void windowDeactivated(WindowEvent e)void windowDeiconified(WindowEvent e)void windowIconified(WindowEvent e)void windowOpened(WindowEvent e)
Kelas-Kelas Event
Kelas – kelas event merepresentasikan tipe – tipe event yang dapat terjadi pada sebuah event source. Semua kelas event di dalam java diturunkan dari kelas EventObject, yang salah satu constructornya berbentuk seperti berikut :
EventObject(Object src)
src adalah object yang membangkitkan event ini. Kelas event object memiliki dua buah method, yaitu getSource() dan toString(). Method getSource digunakan untuk memperoleh object yang mengirimkan event. Adapun bentuk umum dari method getSource() sebagai berikut :
Object getSource()
Java menyediakan beberapa tipe event yang diunggulkan oleh berbagai macam elemen yang terdapat dalam user interface. Tipe – tipe event tersebut disimpan dalam paket java.awt.event
Tabel berikut ini akan menunjukkan beberapa event penting :
ActionEvent Dibangkitkan pada saat objek button diklik, item didalam list di-double click, maupun item menu dipilih.
AdjustmentEvent Dibangkitkan pada saat objek scrollbar dimanipulasiComponentEvent Dibangkitkan pada saat suatu komponen
disembunyikan, dipindahkan, diubah ukurannya, maupun diset ke keaadaan visible
ContainerEvent Dibangkitkan pada suatu saat komponen ditambahkan/dipindahkan ke/dari sebuah container
FocusEvent Dibangkitkan pada saat suatu komponen memperoleh kehilangan fokus keyboard
InputEvent Kelas induk (berupa kelas abstrak) dari semua kelas yang termasuk ke dalam event input.
ItemEvent Dibangkitkan pada saat sebuah item dala list atau checkbox di-click, juga terjadi pada saat item-nya di-buat, dan pada saat item menu di-check maupun di uncheck
KeyEvent Dibangkitkan pada saat input dilakkan melalui keyboard.
MouseEvent Dibangkitkan pada saat mouse didrag, dipindahkan, di click, ditekan, maupun dilepas. Juga terjadi pada saat mouse memasuki atau keluar dari suatu komponen.
TextEvent Dibangkitkan pada saat text yang berada dalam komponen text area atau text field diubah
WindowEvent Dibangkitkan pada saat window atau form diaktivasi, ditutup, di-minimize, di-maximize, dibuka, atau dikeluarkan.
Rangkain User Action, Source Object., dan Tipe Event
User Action Source Object Tipe EventMengklik suatu button JButton ActionEventMengubah text JtextComponent TextEventMenekan tombol enter pada suatu komponen text field JTextField ActionEvent
Memilih suatu event baru JcomboBox ItemEvent, ActionEvent
Memilih satu atau atau banyak item Jlist ListSelectionEvent
Memilih suatu check box JcheckBox ItemEvent, ActionEvent
Memilih suatu radio button JRadioButton ItemEvent, ActionEvent
Memilih suatu item menu JmenuItem ActionEvent
Menggerakkan scroll bar JscrollBar AdjustmentEvent
Window terbuka, tertutup, diberi icon dilepaskan, atau window menutup. Window WindowEvent
Komponen ditambahkan atau dibuang dari kontainer Container ContainerEven
tKomponen digerakkan, di resize, disembunyikan (hidden), atau ditampilkan
Component ComponentEvent
Komponen seketika menjadi fokus atau kehilangan fokus Component FocusEvent
Key ditekan atau dilepaskan Component KeyEventMouse ditekan, dilepaskan, diklik, atau ketika mouse memasuki atau keluar dari suatu komponen.
Component MouseEvent
Mouse digerakkan atau di-drag Component MouseEvent
3. Event Object
Ketika sebuah event terjadi (misal ketika user berinteraksi dengan komponen GUI), sebuah objek event diciptakan. Objek berisi senua 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 tentang salah satu dari class ini.
Event Handling merupakan konsep penanganan suatu action yang terjadi. Jadi suatu program akan berjalan saat sesuatu terjadi, misalnya saat tombol diklik, saat combo box dipilih dan sebagainya. Java memiliki beberapa jenis Event Handling, salah satunya adalah class ActionListener yang menangani aksi terhadap tombol. Berikut ini contoh programnya:
II. PRAKTIKUM DAN PEMBAHSAN
1. Praktek ContohJTextArea
Kode Program:
Pembahasan:
Kode program diatas adalah untuk menampilkan GUI menulis teks,
menghapus teks dan mengecek teks yang telah di inputkan. Kode program
tersebut menggunakan container JFrame dan menggunakan component
button dan teks area. Teks yang kita inputkan disimpan dalam file
TArea.out. Dalam program tersebut mempunyai 3 button yaitu, button
Simpan, Cek dan Hapus, selain itu terdapat teks area untuk menginputkan
teks yang akan kita buat. Button tersebut mempunyai event
ActionListener, event tersebut digunakan untuk mendeteksi aksi apa yang
dilakukan button ketika button tersebut diklik oleh user. Misalnya ketika
kita inputkan teks lalu klik button simpan, jika penyimpanan berhasil maka
akan muncul teks “Teks sudah disimpan di berkas. Cek dengan klik button
Cek”. Selain tombol Simpan terdapat tombol Cek, tombol Cek akan
memberikan aksi menampilkan teks yang telah disimpan, sedangkan
tombol Hapus tentunya untuk menghapus teks.
Output:
2. Praktek ContohJTextField
Kode Program:
Pembahasan:
Kode program di atas untuk menampilkan form login dengan
menggunakan container JFrame, dalam kode program tersebut
menggunakan component JButton, JLabel, JTeksField, JPasswordField.
JPasswordField adalah component untuk memasukan password dan
password tersebut ditampilkan dalam bentuk symbol, dimana dalam kode
program diatas di set menjadi tanda (*). Pada baris 31 terdapat class
GridBagLayout yang digunakan untuk meletakan berbagai kompone
dengan ukuran yang bervariasi. Pada baris 53 adalah kode program untuk
event pada button Login, Button login tersebut mempunyai aksi jika user
menginputkan form Nama Pemakai dengan isi “devi” dan password
“12345678” maka akan muncul label “Login Ok”, dan jika tidak
menginputkan nama pemakai dan password yang tidak sesuai maka akan
muncul label “Ada yang salah”.
Output:
Gambar diatas adalah output dari kode program yang telah dibuat, gambar
pertama adalah ketika kita inputkan Nama Pemakai dan Password yang
sesuai dengan apa yang telah di set dalam program, maka akan muncul
label Login OK seperti pada gambar kedua, dan gambar ketiga adalah
login yang tidak sesuai dengan apa yang telah diset.
3. Praktek JCheckBox
Kode Program:
Pembahasan:
Program diatas adalah untuk menampilkan checkbox dan teks area.
Program tersebut mempunyai 3 checkbox yaitu Java, C++ dan PHP. Pada
baris 20 terdapat statement tArea.setEdittable(false), artinya adalah bahwa
teks area tersebut di set untuk tidak dapat diedit.
Checkbox tersebut mempunyai event ItemListener, event tersebut
digunakan untuk mendeteksi aksi apa yang dilakukan jika user memilih
salah satu objek pada checkbox tersebut. Checkbox tersebut akan
memberikan aksi jika user memilih salah satu objek pada checkbox
tersebut maka akan muncul pada teks area status dari objek tersebut, jika
objek yang dipilih bernilai true dan objek yang tidak dipilih bernilai false.
Output:
III.KESIMPULAN
Dari praktikum dan pembahasan di atas dapat disimpulkan bahwa
JTextArea digunanakan untuk menampung teks berjumlah lebih dari satu baris
dan dapat diedit. JTextField digunakan untuk menampung teks singkat (satu
baris) yang dapat diedit, sedangkan JCheck box untuk mengimplementasikan
CheckBox untuk menawarkan sejumlah pilihan.
IV. DAFTAR PUSTAKA
Menguasai JAVA 2 & Object Oriented Programming/Benny Hermawan; -
Ed.1.-Yogyakarta:Andi,09-08-07.
http://atmaji-atmaji.blogspot.com/2012/05/event-handling.html
·