PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI

I-1

PRAKTIKUM I Pengenalan Java GUI
1. Tujuan  Mahasiswa dapat menerapkan proses enkapsulasi, inheritance, dan     
polimorfisme pada pemograman berbasis obyek. Mahasiswa mampu membuat program menggunakan komponenkomponen visual. Mahasiswa mampu membuat program sederhana untuk even handler pada komponen-komponen dasar. Mahasiswa mampu mengatur layout dari form yang dibuat menggunakan pemograman bahasa java. Mahasiswa mampu membuat program untuk menggambar bentukbentuk grafik primitive seperti garis, kotak, segitiga, dll. Mahasiswa mampu membuat program berbasis GUI.

2. Dasar Teori 2.1. Pemograman Berorientasi Obyek
Pemrograman berorientasi obyek merupakan suatu konsep pemrograman dengan mengambil konsep obyek sebagai komponen dasar dari pemrogramannya. Obyek merupakan suatu kesatuan komponen dan struktur yang di dalamnya berisi attribut yang selanjutnya dinamakan dengan member dan method yang merupakan kumpulan fungsional dari suatu obyek. Sebagai suatu analogi obyek, kita ambil obyek mobil mempunyai member berupa roda, kemudi, body, pintu, lampu, dashborad dan lainnya. Obyek mobil ini mempunyai method berupa maju, mundur, jalan, berhenti, dan berputar. Dengan demikian dapat dikatakan bahwa obyek mempunyai sifat-sifat, yaitu: • Member atau sering juga disebut dengan attribut yang menjelaskan variable, parameter atau keadaan (state) dari suatu obyek, misalkan pada obyek mobil terdapat member berupa roda, kemudi, seperti yang disebutkan di atas • Method atau sering juga disebut dengan behavior yang menjelaskan perilaku, kegiatan atau kerja dari suatu obyek, misalkan pada obyek mobil terdapat method maju, mundur, berhenti, seperti yang disebutkan diatas. Menulis program berbasis obyek menggunakan bahasa Java dilakukan dengan cara membentuk sebuah class, menentukan variabel member dan menentukan method. Pembentukan class dari suatu obyek ini dinamakan dengan enkapsulisasi. Untuk menggambarkan suatu obyek digunakan suatu diagram yang dinamakan dengan class diagram. Model class di dalam class diagram seperti terlihat pada gambar

PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI
I-2

Nama Class member

metode

Class merupakan pendefinisian suatu bentuk obyek denganmenyebutkan definisi member dan method dari obyek tersebut. Bisadikatakan bahwa class merupakan suatu tipe data dari obyek, sedangkanobyek adalah variabel yang menggunakan tipe data yang didefinisikan dalam class. Misalnya kita ingin membuat program untuk menghitung luas dan keliling lingkaran maka kita dapat membuat sebuah class mengenai lingkaran dengan nama Lingkaran1.java. Seperti yang telah diketahui bahwa lingkaran mempunyai parameter buapa jari-jari dan perhitungan yang bisa dilakukan adalah luas lingkaran dan keliling lingkaran. Sehingga class lingkaran.java memiliki variabel member radius dan beberapa method seperti • void inputData(int data), • double hitungLuas(), • double hitungKeliling() dan • void main(String args[]). Class tersebut dapat dinyatakan dengan model seperti pada gambar
Lingkaran double radius void inputData(int data) double hitungLuas() double hitungKeliling()

Inheritance atau pewarisan sifat adalah sebuah class yang memiliki properti (variabel member dan method) dari class induknya. Dengan inheritance ini maka suatu class anak akan mempunyai semua member dan semua method yang ada di class induk. Berikut ini adalah sebuah contoh penggunaan inheritance dimana class Lingkaran.java di atas merupakan class induk dan class Tabung.java merupakan class turunannya. Untuk menyatakan suatu class sebagai turunan class yang lain dapat dilakukan dengan menambahkan pernyataan extends pada definisi class tersebut. class classAnak extends classInduk

PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI
I-3

2.2. Komponen-komponen Visual

JFrame adalah komponen dasar dalam pemrograman visual dengan java. Dalam inilah komponen lain diletakkan. JLabel adalah komponen yang digunakan untuk membuat tulisan atau gambar pada frame sebagai suatu informasi untuk pengguna program. Untuk menggunakan jLabel, sebagai suatu class maka sebelumnya perlu dibuat suatu obyek menggunakan class JLabel. JTextField adalah komponen yang digunakan untuk memasukkan sebaris string yang selanjutnya dapat digunakan sebagai input bagi proses selanjutnya. Pembuatan JTextfield dilakukan dengan membuat obyek berdasarkan class JtextField. JButton adalah komponen berbentuk tombol. Komponen ini banyak digunakan sebagai eksekusi terhadap tindakan yang diinginkan. Pada aplikasi komputer, biasanya dibutuhkan tombol untuk mengeksekusi sebuah perintah.

PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI
I-4

JRadioButton adalah komponen yang digunakan ketika pengguna perlu memilih satu diantara beberapa pilihan. JComboBox juga merupakan komponen yang digunakan untukmemilih satu diantara sekian banyak pilihan yang berbentuk semacam TextField dan ada panah ke bawah. JTextArea merupakan komponen yang mirip dengan JtextField tetapi dapat menampung lebih dari satu baris. JCheckBox adalah komponen yang digunakan ketika penggunamemerlukan komponen untuk melakukan satu atau banyak pilhan sekaligus JTable digunakan untuk menampilkan data dalam bentuk tabel, suatu bentuk yang banyak digunakan dalam pemrograman database. JScrollPane adalah komponen yang digunakan untuk menggerakkan obyek ke atas, ke bawah atau ke samping agar semua sebuah obyek terlihat di layar. JMenu adalah komponen yang digunakan untuk membuat menu. Menu membuat program kita menjadi lebih sederhana dan mudah digunakan. JInternalFrame menyebabkan sebuah frame hanya dapat berada dalam frame lain. Kondisi ini akan membantu tampilan menjadi lebih rapidan teratur.

2.3 Event Handler
Event Handler adalah proses yang diperlukan untuk melakukan reaksi bila diberikan sebuah aksi. Event handler ini dapat diberikan pada semua obyek yang kita gunakan bergantung pada keperluan. Kategori Name Interface Method Action ActionListener actionPerformed(ActionEv ent) Item ItemListener itemStateChanged(ItemEv Mouse MouseListener ent) mousePressed(MouseEven t) mouseReleased(MouseEve nr) mouseEntered(MouseEven t) mouseExited(MouseEvent)

PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI
I-5

mouseClicked(MouseEven t) Kategori Mouse Motion Key KeyListener Focus FocusListener Adjustm ent Compon ent AdjustmentListen er ComponentListen er Name Interface MouseMotionList ener Method mouseDragged(MouseEvent) mouseMoved(MouseEvent) keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) focusGained(FocusEvent) focusLost(FocusEvenr) adjustmentValueChanged(AdjustmentEv ent) componentMoved(ComponentEvent) componentHidden(ComponentEvent) componentResized(ComponentEvent) componentShown(ComponentEvent) windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified (WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated (WindowEvent) componentAdded(ContainerEvent) componentRemoved(ContainerEvent) ContainerListene r TextListener Seluruh basic event listener terdapat dalam paket java.awt.event, sehingga untuk bisa menggunakan classclass tersebut, gunakan statemen sbb : import java.awt.event.*; Setiap event handler membutuhkan 3 bagian kode sbb : 1. Pada bagian deklarasi dari class yg akan menghandle event, tuliskan kode yang menspesifikasikan bahwa class tsb mengimplementasikan (implements) sebuah listener ataukah menurunkan (extends) sebuah class yang mengimplementasikan sebuah interface listener, misalnya : textValueChanged(TextEvent)

Window WindowListener

Contain er Text

3. class MyMouseMotionListener extends MouseAdapter { public void mouseDragged(MouseEvent e) { } } • Implementasi program dengan anonymous inner class.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI public class MyClass implements ActionListener { 2. misalnya : public void actionPerformed)ActionEvent e) { … //kode yang mengakomodasi aksi dari user } 4. sbb : addMouseMotionListener(new MyMouseMotionListener()). Kode yang mendaftarkan sebuah instance dari class event handler sebagai listener untuk satu atau lebih komponen.. misalnya: someComponent... •Implementasi program dengan inner class. addMouseMotionListener(new MouseMotionAdapter(){ public void mouseDragged(MouseEvent e) { . } }). sbb : .addActionListener(instanceOfMyClass).. Menggunakan inner class. // tutup dengan titik koma I-6 . Kode yang mengimplementasikan methodmethod yang terdapat dalam interface listener ybs.

Berikut ini adalah contoh program yang terdiri dari beberapa komponen dan diatur dengan menggunakan beberapa jenis manajemen layout agar dapat dilihat karakteristik masing-masing . Pada bab-bab terdahulu. dimana pengaturan posisi komponen dalam frame dilakukan sendiri oleh programmer. Beberapa jenis layout yang lain dapat digunakan untuk berbagai keperluan. manajemen layout yang digunakan adalah none layout.4 Layout Pengaturan layout digunakan untuk mengatur posisi dari komponen visual penyusun program sesuai dengan desain user interface. Beberapa pilihan layout telah disediakan java. dimana keputusan untuk menggunakan jenis layout tertentu bergantung pada jenis aplikasi yang ingin dibuat serta tingkat kerapian yang diinginkan.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I-7 2.

EAST. setLayout(new FlowLayout(int align. SOUTH. Komponen visual dapat diletakkan pada bagian-bagian tersebut. dan akan pindah ke bawah bila telah sampai batas kanan frame. .RIGHT -> rata kanan atau 2 hgap : horizontal gap vgap : vertical gap BorderLayout merupakan jenis layout yang bekerja dengan membagi frame menjadi lima bagian yaitu NORTH.LEFT -> rata kiri atau 0 FlowLayout. dimana semua komponen akan tersusun dari kiri ke kanan sepanjang frame. int hgap. Kode program yang digunakan untuk melakukan pengaturan flowlayout adalah: getContentPane(). Ket: align : rata baris FlowLayout. WEST dan CENTER. int vgap)).CENTER -> rata tengah atau 1 FlowLayout.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I-8 FlowLayout adalah jenis pengaturan layout yang paling sederhana.setLayout(new FlowLayout()) yang dapat kita letakkan pada method tertentu komponen-komponen visual.

2. . int y.5 Grafis Pemrograman grafis digunakan dalam banyak hal mulai dari upaya untuk memperoleh tampilan yang indah. int height) --> membuat sebuah kotak dengan titik kiri atas pada(x. dan membentuk sebuah obyek untuk mengakses gambar kita tersebut. int height) --> membuat sebuah oval dengan ukuran tertentu. Dalam class inilah kita meletakkan gambar atau animasi. int ydiam) --> membuat kotak dengan sudut yang tidak tegak lurus. • drawRoundRect(int x. int y. Hal ini akan dibahas dalam pembahasan J2ME yang merupakan materi lanjut dari pemrograman Java dan tidak dibahas dalam buku ini Salah satu cara untuk membuat aplikasi grafis dengan javaadalah dengan membuat class yang merupakan turunan dari classcanvas. int width. • drawLine(int x1. int y1. Pembahasan permograman garis akan dimulai dari menggambar obyek-obyek sederhana menggunakan garis. int width.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I-9 GridLayout adalah jenis layout yang bekerja berdasar baris dan kolom. khususnya untuk permainan di perangkatperangkat mobile. int y) --> membuat sebuah text menggunakan font dan color standar pada posisi koodinat x dan y. aplikasi animasi. dan permainan yang berbasis grafik dibuat menggunakan bahas Java. NoneLayout merupakan jenis layout yang dapat menghasilkan tampilan yang rapi karena kita dapat mengatur posisi komponen secara detil berdasar koordinatnya. int y. JPanel adalah komponen visual yang digunakan untuk membantu mengatur letak komponen lain agar terlihat lebih tertata rapi dan nyaman. Karena itulah banyak program grafik. int x. int width. Bahasa Java merupakan salah satu bahasa dengan fasilitas berupa komponen-komponen grafis yang lengkap. menggambar fungsi dan bagaimana dapat menampilkan dan mengolah data gambar (image processing) dengan pembahasan yang sangat sederhana. Dengan layout ini kita dapat memberikan argumen banyaknya baris dan kolom sesuai dengan kebutuhan. aplikasi simulasi.y) dan mempunyai ukuran tertentu. aplikasi pengolahan citra sampai visi komputer. • drawRect(int x. int y2) --> membuat sebuah garis dari titik x1. • drawOval(int x.y2.y1 ke titik x2. int x2. Beberapa methode yang sering digunakan dalam aplikasi grafis yaitu: • drawstring(String str. int xdiam. Berikut ini adalah beberapa pemrograman dasar di bidang grafis dalam java yang diharapkan dapat menjadi bekal awal untuk memahami berbagai topic seputar grafis yang begitu luas. Konsekuensinya dengan layout ini waktu yang diperlukan relatif lebih banyak dibanding layout yang lain karena kita perlu menentukan posisi koordinat tiap komponen. int height.

10 draw3DRect(int x. Class Lingkaran public class Lingkaran { double radius. } public void cetak() { System. • fillOval(int x. System. int height ) --> membuat kotak yang dalamnya berwarna.out. int y. int width.hitungLuas()). System. int height. Boolean raised) • fillArc(int x.radius). int startAngle.println("Keliling Lingkaran: " + this. int height. int ydiam) --> membuat kotak yang berwarna. Luas = Math. int width.PI * radius . } public double hitungKeliling() { double keliling. int startAngle.hitungKeliling()). int height) --> membuat oval yang mempunyai warna. } public double hitungLuas() { double Luas. } public static void main(String args[]) { Lingkaran lingkaran = new Lingkaran(). int y. int height. int y. int width. int arcAngle) 3. Lingkaran(){} void inputData(int data) { this.out. return Luas. Latihan 3. int width. int y.println("Luas Lingkaran: " + this. keliling = 2 * Math. int arcAngle) --> membuat sebuah lingkaran yang tidak penuh.1 Konsep Pemograman Berbasis Objek a. int width. return keliling. int height.radius = data. int y.println("Radius Lingkaran: " + this. int y.PI * radius * radius. int width. • fill3DRect(int x. int height. int width. • fillRoundRect(int x. int y.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI • I . int xdiam. . boolean raised) --> membuat kotak dengan efek 3 dimensi (sebaiknya warna gambar disesuaikan dengan warna background).out. • fillRect(int x. • drawArc(int x.

} public static void main(String args[]) { Tabung tabung = new Tabung() .11 b. Class Tabung yang mengextends class Lingkaran public class Tabung extends Lingkaran { Tabung() {} public double hitungSelimut(int tinggi) { double selimut. return selimut.inputData(10). tabung.2 Komponen-komponen Visual . tabung.hitungSelimut(10)).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI lingkaran. lingkaran.out. selimut = 2 * hitungLuas() + hitungKeliling() * tinggi. } } I .cetak(). } } 3.cetak().inputData(10). System.println("Luas Selimut: " + tabung.

100) digunakan untuk menentukan posisi frame di layar dimana 300 menunjukkan posisi x dan 100 menunjukkan posisi y.150).*. • setLocation(300. setSize(300. setDefaultCloseOperation(JFrame. • setVisible(true) digunakan untuk menampilkan frame. } public static void main(String args[]) { AplikasiPenilaian ap=new AplikasiPenilaian(). class AplikasiPenilaian extends JFrame{ JLabel lblnim=new JLabel("NIM").EXIT_ON_CLOSE). JFrame import javax.*.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI a.100). } } I . Bila perintah tersebut tidak ada. setVisible(true). Pernyataaan ini merupakan perintah yang digunakan untuk menyiapkan class-class yang diperlukan oleh program kita. • setDefaultCloseOperation(JFrame. b.* ini.*.swing. • setTitle digunakan untuk membuat judul frame. class AplikasiPenilaian extends JFrame Pernyataan ini menunjukkan bahwa class AplikasiPenilaian merupakan turunan dari class JFrame yang berarti bahwa class ini memiliki atributatribut dari class JFrame.swing.150) digunakan untuk menentukan besar frame dimana 300 menunjukkan lebar frame dan 150 menunjukkan tinggi frame. Komponen visual yang kita perlukan dalam pemrogaman visual berada dalam paket javax. maka penutupan frame tidak akan menghentikan jalannya program.swing. AplikasiPenilaian(){ . setLocation(300. • setSize(300. JLabel import javax.EXIT_ON_CLOSE) digunakan untuk mengakhiri jalannya program bila frame ditutup. class AplikasiPenilaian extends JFrame{ AplikasiPenilaian() { setTitle("Lembar Penilaian").12 import javax.swing.

Merupakan cara untuk membentuk obyek JLabel yang kita beri nama lblnim dan bertuliskan “NIM“. perintah di atas berhubungan dengan getContentPane(). dimana layout null berarti bahwa koordinat tiap komponen dalam frame harus ditentukan sendiri posisinya oleh programmer.add(lblnim). argumen kedua menunjukkan koordinat y dari ujung kiri atas obyek.EXIT_ON_CLOSE). } void komponenVisual(){ getContentPane().70. getContentPane().setLayout(null) di atas yang berguna untuk mengatur posisi dari komponen Jlabel yang bernama lblnim. setDefaultCloseOperation(JFrame.13 } JLabel lblnim=new JLabel("NIM"). setSize(300. setVisible(true).add(lblnim) adalah perintah yang digunakan untuk menempelkan obyek JLabel ke frame. getContentPane().10.setLayout(null).10.70.20) dimana agrumen pertama menunjukkan koordinat x dari ujung kiri atas obyek.setLayout(null) Sintaks di atas digunakan untuk mengatur tata letak komponen dalam frame. } public static void main(String args[]) { AplikasiPenilaian ap=new AplikasiPenilaian().20). .150). komponenVisual().setBounds(10.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI setTitle("Lembar Penilaian"). argumen ketiga menunjukkan lebar dari obyek dan argumen keempat menunjukkan tinggi dari obyek.70. Pengaturan posisi dilakukan dengan menggunakan setBounds(10.20). Obyek ini akan kita gunakan sebagai informasi kepada user untuk memasukkan NIM mahasiswa. getContentPane(). setLocation(300.setBounds(10. } I . lblnim.10.100). lblnim.

} void komponenVisual(){ getContentPane(). } public static void main(String args[]) { AplikasiPenilaian ap=new AplikasiPenilaian(). getContentPane().swing.100).*.10. txnim.add(txnim).20). lblnim. setLocation(300. getContentPane().add(txnim). c. Adalah membentuk obyek dari komponen JTextField yang akan digunakan untuk menampung nilai dari NIM mahasiswa. setVisible(true).20).100.10.setLayout(null). AplikasiPenilaian(){ setTitle("Lembar Penilaian").10.setBounds(75. digunakan untuk menampilkan frame berserta semua obyek yang ada di dalamnya. class AplikasiPenilaian extends JFrame{ .swing.150). JTextField import javax.setBounds(75.20).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . d.100. setDefaultCloseOperation(JFrame. JButton import javax.EXIT_ON_CLOSE). setSize(300. komponenVisual(). adalah perintah untuk menempelkan dan mengatur posisi txnim pada frame.14 setVisible(true).70. Pada program sebelumnya method ini kita letakkan pada constructor karena kita belum membuat method komponenVisual(). class AplikasiPenilaian extends JFrame{ JLabel lblnim=new JLabel("NIM").setBounds(10.add(lblnim).*. } } JTextField txnim=new JTextField(20). txnim. JTextField txnim=new JTextField(20). getContentPane().

} I . setLocation(300.100.20).swing.setBounds(75. tblcari. JLabel lblnama=new JLabel("Nama"). txnim. JTextField txnim=new JTextField(20).10. JButton tblcari=new JButton("Cari"). JRadioButton kelasA=new JRadioButton("A"). getContentPane(). setSize(300.setBounds(10. } void komponenVisual(){ getContentPane(). setVisible(true).20). setLocation(300.10. } public static void main(String args[]) { AplikasiPenilaian ap=new AplikasiPenilaian().95. AplikasiPenilaian(){ setTitle("Lembar Penilaian"). setDefaultCloseOperation(JFrame. class AplikasiPenilaian extends JFrame { JLabel lblnim=new JLabel("NIM "). JTextField txnim=new JTextField(20). JButton tblcari=new JButton("Cari").add(txnim).100). JRadioButton kelasB=new JRadioButton("B"). lblnim.15 } e. getContentPane().100). JTextField txnama=new JTextField(20). ButtonGroup grupkelas=new ButtonGroup().add(tblcari).10.70.add(lblnim). . JRadioButton kelasC=new JRadioButton("C"). getContentPane(). AplikasiPenilaian(){ setTitle("Lembar Penilaian").setLayout(null).setBounds(180.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI JLabel lblnim=new JLabel("NIM").*.EXIT_ON_CLOSE).20). JLabel lblkelas=new JLabel("Kelas ").150). komponenVisual(). JRadioButton import javax.

. lblnim. getContentPane(). setDefaultCloseOperation(JFrame. getContentPane().add(kelasB).setBounds(175.20).20). JRadioButton kelasC=new JRadioButton("C").setBounds(75.EXIT_ON_CLOSE).10.50.20).50.200.50.setBounds(10.20). getContentPane(). getContentPane().add(lblnim).50. kelasB. kelasC.add(tblcari). grupkelas.setLayout(null). grupkelas.setBounds(125.add(kelasA).add(kelasA).50.add(lblnama).150). getContentPane(). } void komponenVisual(){ getContentPane().70.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI setSize(300. getContentPane().20).setBounds(75.add(kelasC).setBounds(10.20).16 JRadioButton kelasA=new JRadioButton("A").add(lblkelas).add(txnama). komponenVisual(). lblkelas.30. txnim.100. setVisible(true). grupkelas.setBounds(75. getContentPane().add(kelasB). getContentPane(). Sintaks di atas menunjukkan bahwa kita memiliki tiga kelas yang dibuat dengan membentuk tiga buah obyek dari class JRadioButton.20). tblcari.50.30.100. getContentPane().setBounds(10. lblnama. kelasA.95.10.add(kelasC). txnama. } public static void main(String args[]){ AplikasiPenilaian ap=new AplikasiPenilaian().20). ButtonGroup grupkelas=new ButtonGroup().70.50.20).setBounds(180.add(txnim). JRadioButton kelasB=new JRadioButton("B"). } } I .10.

getContentPane().add(kelasB).swing. adalah cara untuk menyatukan ketiga obyek menjadi satu kesatuan.setBounds(125. JLabel lblnama=new JLabel("Nama"). tblcari."2".setLayout(null).20). getContentPane(). getContentPane(). JLabel lblkelas=new JLabel("Kelas "). lblkelas.50.70.50.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . grupkelas.add(lblnim).20). getContentPane(). JComboBox cbkelompok=new JComboBox(jeniskelompok). . JRadioButton kelasC=new JRadioButton("C"). lblnama."4".20).setBounds(180.50.50.add(lblnama)."7"}. f.20).20).10."3". setDefaultCloseOperation(JFrame.50.add(kelasA). setLocation(300. getContentPane(). grupkelas. JTextField txnim=new JTextField(20). getContentPane(). JLabel lblkelompok=new JLabel("Kelompok").setBounds(75.10.setBounds(10.*.20). txnama.add(kelasA). komponenVisual(). AplikasiPenilaian(){ setTitle("Lembar Penilaian"). txnim.95. sehingga hanya akan terpilih satu diantara obyek JRadioButton yang ada. getContentPane().setBounds(75.200.100). lblnim."6".setBounds(175.add(kelasB). class AplikasiPenilaian extends JFrame{ JLabel lblnim=new JLabel("NIM "). kelasC. JRadioButton kelasB=new JRadioButton("B").setBounds(10. kelasA. JComboBox import javax. setSize(300.20).setBounds(10.100.150)."5".add(txnim). JRadioButton kelasA=new JRadioButton("A").add(tblcari). JTextField txnama=new JTextField(20). } void komponenVisual(){ getContentPane().50. sehingga hanya dapat dipilih satu diantara ketiganya. grupkelas. getContentPane(). ButtonGroup grupkelas=new ButtonGroup(). JButton tblcari=new JButton("Cari"). String[] jeniskelompok={"1".20).70.EXIT_ON_CLOSE).add(lblkelas).30.add(kelasA).add(kelasC).10.100.50.setBounds(75.17 Merupakan obyek yang digunakan untuk menyatukan semua obyek JRadioButton.20). kelasB. getContentPane(). grupkelas.add(kelasC).add(txnama).30.

*.20). Merupakan deklarasi pembentukan obyek ComboBox menggunakan argumen array yang sebelumnya telah disediakan yaitu jeniskelompok.18 String[] jeniskelompok={"1".add(cbkelompok).swing."5". JTextArea import javax. FrameTextArea(){ setTitle("Form Text Area"). JComboBox cbkelompok=new JComboBox(jeniskelompok).20).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI grupkelas. private JTextArea area1=new JTextArea(3. setSize(300.EXIT_ON_CLOSE). setVisible(true). getContentPane()."2". } public static void main(String args[]) { . setLocation(200. Adalah variabel array yang akan digunakan sebagai alternatif pilihan bagi ComboBox. lblkelompok.100). g. class FrameTextArea extends JFrame { private JLabel label=new JLabel("Nama")."6".*.100).setBounds(10. setDefaultCloseOperation(JFrame.100. getContentPane(). getContentPane(). getContentPane(). } void komponenVisual() { getContentPane(). } public static void main(String args[]){ AplikasiPenilaian ap=new AplikasiPenilaian(). cbkelompok.add(kelasC).setBounds(75.add(lblkelompok). komponenVisual().100.add(kelasB).add(label)."4".add(area1).20). grupkelas. import java.awt. } } I ."3".70."7"}.setLayout(new FlowLayout()).70. setVisible(true).

JCheckBox cek2=new JCheckBox("Pilihan 2")."Selasa".awt.100).EXIT_ON_CLOSE). setLocation(200. FrameCheckBox() { setTitle("FrameCheckBox"). setSize(300. setVisible(true). . JCheckBox import javax.add(cek2). JCheckBox cek3=new JCheckBox("Pilihan 3").awt.add(cek1).add(cek3). import java.*. komponenVisual()."Rabu"}. } public static void main(String args[]){ FrameCheckBox cb=new FrameCheckBox(). } } i.setLayout(new FlowLayout()). import java. getContentPane(). getContentPane(). getContentPane().*. class FrameCheckBox extends JFrame { JCheckBox cek1=new JCheckBox("Pilihan 1").PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI FrameTextArea textArea=new FrameTextArea(). setDefaultCloseOperation(JFrame.100). JTable import javax.swing. } } I .*. } void komponenVisual(){ getContentPane().*.19 h. class FrameTabel extends JFrame { String[] header={"Senin".swing.

} void komponenVisual(){ getContentPane().100)."Rabu"}. FrameTabel(){ setTitle("Frame Tabel")."690". import java."360"}}."600".20 j. {"290". setSize(300. JScrollPane scrollPane = new JScrollPane(tabel1). getContentPane().add(scrollPane. } . class FrameScrollPane extends JFrame { String[] header={"Senin".100).*."600". setDefaultCloseOperation(JFrame.100). } public static void main(String args[]){ FrameTabel t=new FrameTabel().EXIT_ON_CLOSE).awt. BorderLayout.header)."450"}."150"}. String[][] data={{"100". setVisible(true). FrameScrollPane(){ setTitle("Frame Scroll Pane").PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI String[][] data ={{"100".header). setVisible(true)."300"."300". setDefaultCloseOperation(JFrame. setLocation(200.100). komponenVisual().{"500". JTable tabel1=new JTable(data. komponenVisual(). JScrollPane import javax.swing. setLocation(200."Selasa".add(tabel1).*. {"290".EXIT_ON_CLOSE)."360"}}.{"500". } void komponenVisual() { JTable tabel1=new JTable(data.CENTER)."450"}. setSize(300."150"}. } } I ."690".

JMenuItem quit=new JMenuItem("Quit"). JMenu file=new JMenu("File").add(open).200).add(help). mb. JMenuItem open=new JMenuItem("Open"). file. JMenuItem close=new JMenuItem("Close").awt.swing. close. setVisible(true).*. } public static void main(String args[]){ AplikasiMenu m1=new AplikasiMenu(). JInternalFrame import javax. JMenu import javax.*.add(about). class AplikasiMenu extends JFrame { JMenuBar mb=new JMenuBar(). JMenu help=new JMenu("Help"). AplikasiMenu(){ setTitle("Menu Utama").add(close). file.add(file). } } l. setSize(320. komponenVisual(). mb.swing.EXIT_ON_CLOSE). setLocation(300. setDefaultCloseOperation(JFrame.160).add(quit). file.setEnabled(false). import java.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI public static void main(String args[]){ FrameScrollPane t=new FrameScrollPane(). . } } I .21 k. help.*. } void komponenVisual(){ setJMenuBar(mb). JMenuItem about=new JMenuItem("About").

awt. setDefaultCloseOperation(JFrame.true).200).setSize(200. desktop. setLocation(100.true.swing.awt. public class AplikasiFrameInternal extends JFrame { JDesktopPane desktop=new JDesktopPane().100).3 Event Handler a. setSize(300.true. setVisible(true). .*. } public static void main(String[] args){ AplikasiFrameInternal if1=new AplikasiFrameInternal().add(iframe).200).*. JInternalFrame iframe=new JInternalFrame("Internal Frame". iframe. class AplikasiEvent1 extends JFrame{ JTextField data1=new JTextField(6).setVisible(true). iframe. import java.*.event.EXIT_ON_CLOSE).setLocation(20. AplikasiFrameInternal(){ setTitle("Aplikasi Internal Frame"). } } I .22 3. } void komponenVisual(){ iframe. setContentPane(desktop).true. komponenVisual(). ActionEvent import javax.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI import java.20).

int y=Integer. } void AksiReaksi(){ operasi. } void komponenVisual(){ getContentPane(). setSize(270. operasi.20).10. hasil.20).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System. JButton exit=new JButton("EXIT"). data1.100).35.50.10. } }).add(data1).setBounds(160. JTextField hasil=new JTextField(6). getContentPane().setBounds(160. } }).EXIT_ON_CLOSE).getText()).add(exit).50. } } .10. data2.parseInt(data2.90. JButton operasi=new JButton("+").add(hasil).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int x=Integer.23 } public static void main(String args[]){ AplikasiEvent1 e1=new AplikasiEvent1().add(data2).exit(0). AksiReaksi().getText()).20). setVisible(true).90.50. getContentPane(). setDefaultCloseOperation(JFrame. I . AplikasiEvent1(){ setTitle("Event Sederhana").20).setText(z).10.setBounds(10. setLocation(200. getContentPane().setBounds(60. String z=String. hasil.20).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI JTextField data2=new JTextField(6).setLayout(null). exit. getContentPane().valueOf(x+y). exit.100). komponenVisual().add(operasi).setBounds(110.parseInt(data1. getContentPane().

import java.parseInt(data2.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . String z=String. Baris perintah di atas digunakan untuk melakukan proses penjumlahan kedua input data x dan y.24 method AksiReaksi() digunakan untuk menempatkan kode-kode program event handler. int x=Integer.getText() . Pada contoh di atas. kemudian mengubah tipe datanya menjadi String agar hasilnya dapat ditampilkan melalui JTextField hasil dengan menggunakan sintaks : hasil. Pada tombol exit diberikan sintaks System.valueOf(x+y).addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ … } }). b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { }).getText()). Dalam method public void actionPerformed(ActionEvent e) inilah efek yang timbul akibat penekanan klik mouse pada tombol operasi dan exit kita tuliskan.*.parseInt dan menyimpan nilainya ke dalam variabel x dan y.event. .getText()).swing.awt. class keyboardEvent extends JFrame { JTextField data1=new JTextField(6).parseInt(data1. int y=Integer.setText(z).*. mengubahnya dari String menjadi integer dengan Integer. Dua baris kode tersebut di atas mempunyai tugas yang sama yaitu mengambil nilai dari JTextField dengan cara data1. KeyboardEvent import javax. exit. Reaksi yang timbul akibat klik mouse pada tombol operasi dan exit diimplementasikan dengan kode berikut : operasi.exit(0) agar aplikasi berhenti bila tombol exit di klik. terdapat dua event handler yaitu penekanan mouse pada tombol operasi dan penekanan mouse pada tombol exit.

setBounds(130. getContentPane(). int y=Integer.add(data1). setLocation(200.getKeyCode()==e. operasi.setBounds(70.VK_ENTER){ data2.10.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e. hasil.add(exit).20).getText()).50. data1. data2.setLayout(null).10.add(hasil).valueOf(x+y). } } }). } void komponenVisual(){ getContentPane().100). setDefaultCloseOperation(JFrame.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI JTextField data2=new JTextField(6).setText(z). String z=String.90.20). } void AksiReaksi(){ data1.parseInt(data2. setSize(300.20).25 .getKeyCode()==e.setBounds(190. getContentPane(). } } }). getContentPane(). AksiReaksi(). operasi.setBounds(190.add(data2). setVisible(true).VK_ENTER){ operasi.requestFocus(). hasil.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e. JButton exit=new JButton("EXIT"). } }).50.20).10.setBounds(10.35.parseInt(data1.10. JTextField hasil=new JTextField(6).getText()).50. I . getContentPane(). exit.90.add(operasi).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int x=Integer. data2. komponenVisual(). getContentPane().EXIT_ON_CLOSE). JButton operasi=new JButton("+"). keyboardEvent(){ setTitle("Keyboard Event").requestFocus().20).100).

getKeyCode()==e.requestFocus().*. program aplikasi sederhana di atas dapat kita sempurnakan dengan memberikan event enter pada JTextField data1 dan JTextField data2 sehingga setelah data pertama dimasukkandan kita tekan enter kursor akan pindah ke JTextField data2 siap untuk mengisi data kedua. Dengan cara yang sama. . } } }).event. ………. class textAreaEvent extends JFrame{ JLabel lblnama=new JLabel("Nama").getText()). } public static void main(String args[]){ keyboardEvent e1=new keyboardEvent().awt.VK_ENTER){ ………. import java.valueOf(x+y). TextAreaEvent import javax.parseInt(data1. String z=String.*.swing. } I . data2. Setelah data kedua diisi dan ditekan tombol enter maka fokus akan menuju ke tombol operasi. } }). exit. hasil.exit(0). exit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.getText()). } adalah sintaks yang memungkinkan suatu reaksi terjadi bila kita menekan tombol enter di keyboard.getKeyCode()==e.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI operasi.VK_ENTER){ int x=Integer.parseInt(data2.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e. siap untuk ditekan. c. int y=Integer.26 } if(e.setText(z).requestFocus() adalah kode yang memungkinkan terjadinya perpindahan kursor dari JTextfield pertama ke JTextField kedua.

80.getText()+"\n"). AksiReaksi(). komponenVisual().10. getContentPane().20).270.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ hasil.setBounds(160.add(wanita).20). setVisible(true). txnim. } I .append(wanita.80.setLayout(null). } else{ hasil. setSize(300.setBounds(10.56.add(lblnim). setLocation(300. kelompok.80.setBounds(105. ButtonGroup kelompok=new ButtonGroup().10.append(pria.175.320). hasil.20). JTextField txnim=new JTextField(7).add(txnama). if(pria.add(pria).20). getContentPane().setBounds(10. setDefaultCloseOperation(JFrame. getContentPane().append(txnim. txnama.56.getText()+"\n"). kelompok.100). wanita.EXIT_ON_CLOSE). lblnim.add(lblkelamin).70.setBounds(10. lblnama. } void komponenVisual(){ getContentPane().add(lblnama).add(hasil).setBounds(10.setBounds(10.isSelected()==true){ hasil. getContentPane().add(wanita).270.add(cetak). JRadioButton pria=new JRadioButton("Pria").33. getContentPane(). pria.33. JButton cetak=new JButton("Cetak"). textAreaEvent(){ setTitle("TextArea Event"). JLabel lblkelamin=new JLabel("Jenis Kelamin").getText()+"\n"). getContentPane().add(txnim). JTextArea hasil=new JTextArea().setBounds(105.add(pria).20). } void AksiReaksi(){ cetak. getContentPane().80.20).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI JTextField txnama=new JTextField(20). getContentPane(). cetak.105. JRadioButton wanita=new JRadioButton("Wanita").150).append(txnama.setBounds(105.56.getText()+"\n").50. lblkelamin.20). getContentPane(). hasil.70. JLabel lblnim=new JLabel("NIM").20).27 .

28 public static void main(String args[]){ textAreaEvent e5=new textAreaEvent(). JRadioButton pria=new JRadioButton("Pria").EXIT_ON_CLOSE). JCheckBox jalan=new JCheckBox("Jalan-Jalan").event. . class checkBoxEvent extends JFrame { JLabel lblnama=new JLabel("Nama"). JLabel lblnim=new JLabel("NIM"). import java.*. JLabel lblhobi=new JLabel("Hobi").320). setLocation(300. JTextArea hasil=new JTextArea().PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI } } }). JTextField txnama=new JTextField(20). setDefaultCloseOperation(JFrame. } } d.100). checkBoxEvent(){ setTitle("Event Sederhana"). JCheckBox mancing=new JCheckBox("Memancing").awt. CheckBoxEvent import javax.swing. JButton cetak=new JButton("Cetak"). JTextField txnim=new JTextField(7).*. ButtonGroup kelompok=new ButtonGroup(). JCheckBox baca=new JCheckBox("Membaca"). I . JLabel lblkelamin=new JLabel("Jenis Kelamin"). setSize(300. JRadioButton wanita=new JRadioButton("Wanita").

add(mancing).add(pria).70.setBounds(10. if(pria.270.33. pria.add(txnim). getContentPane().add(wanita). getContentPane().setLayout(null).80.20).270.20).getText()+"\n").add(txnama). getContentPane(). kelompok.add(baca). getContentPane(). mancing.getText()+"\n").isSelected()==true){ hasil.80.20).isSelected()==true){ hasil.29 } void komponenVisual(){ getContentPane().70.80.add(cetak).20).add(lblnim).add(lblkelamin).setBounds(10. getContentPane().10. lblnim.getText()+"\n"). cetak. txnama.setBounds(160. getContentPane().100).70.20). getContentPane(). jalan. getContentPane().append(txnim.80. lblnama.20). hasil.56.175.setBounds(10.20).append(mancing. I .56.setBounds(105. } if(baca.56.100. lblhobi. } if(mancing.126.add(lblnama). getContentPane(). baca.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ hasil.add(hasil).100.setBounds(105. wanita. } if(jalan.setBounds(105. } void AksiReaksi(){ cetak.getText()+"\n").append(wanita.append(pria.20).isSelected()==true){ .setBounds(10.50.getText()+"\n").100. txnim.add(jalan).getText()+"\n").20).180.append(baca. setVisible(true).20).append(txnama.add(lblhobi).setBounds(105.setBounds(10. getContentPane(). getContentPane().103.20).isSelected()==true){ hasil.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI komponenVisual().setBounds(105.add(wanita).150.33. lblkelamin. getContentPane().20).setBounds(10.80. hasil. kelompok.10. } else{ hasil.setBounds(105.add(pria). AksiReaksi(). getContentPane().

setSize(320. } } }).swing. JMenu data=new JMenu("Data"). class menuEvent extends JFrame { JMenuBar mb=new JMenuBar().*.30 public static void main(String args[]){ checkBoxEvent e5=new checkBoxEvent().event. import java. AksiReaksi().160).*. JMenu help=new JMenu("Help").200). JMenuItem about=new JMenuItem("About").append(jalan. komponenVisual(). setLocation(300. import java.awt.EXIT_ON_CLOSE). JMenuItem input=new JMenuItem("Input Data"). MenuEvent import javax. } } e. menuEvent(){ setTitle("Menu Utama"). JMenuItem edit=new JMenuItem("Edit Data"). } . } I .*.awt.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI hasil. JMenuItem quit=new JMenuItem("Keluar"). setDefaultCloseOperation(JFrame.getText()+"\n").

setVisible(true).addSeparator(). data. data.add(edit).exit(0). } }). mb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . } }).31 void komponenVisual(){ setJMenuBar(mb)."DataPersonalia". mb. data. } }).JOptionPane.add(help). about.add(data). } } . edit.showInputDialog(null. } void AksiReaksi(){ input.INFORMATION_MESSAGE). } }).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ new checkBoxEvent().addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ new FrameTextArea().add(input). help."Masukkan nama anda".add(about). } public static void main(String args[]){ menuEvent e8=new menuEvent().add(quit).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane. quit. data.

import java.NORTH). setSize(300.setText(s). BorderLayout.*.awt.getY().300). setLocation(300. setVisible(true).setLayout(new BorderLayout(3. } }).3)).32 f.EXIT_ON_CLOSE).setText(s). } void Aksi() { this. } }).*. } }).addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { String s = "Mouse dragging: X= "+ e.add(text. text. twoListener import java. setDefaultCloseOperation(JFrame.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .awt. getContentPane().add(lbl.addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent e) { String s = "Mouse Entered!". getContentPane().addMouseListener(new MouseAdapter() { public void mouseExited(MouseEvent e) { String s = "Mouse Exited!". Aksi(). } void komponenVisual() { getContentPane().event.getX() + " Y= "+ e. twoListener() { setTitle("Contoh 2 Listener").SOUTH).setText(s). public class twoListener extends JFrame { JTextField text = new JTextField(30). komponenVisual(). BorderLayout. import javax. } .swing.200). text.*. text. this. JLabel lbl = new JLabel("Click dan Drag Mouse"). this.

JTextField txnama=new JTextField(20). getContentPane(). komponenVisual().EXIT_ON_CLOSE).add(tombolSimpan). class flowlayout extends JFrame{ JLabel nama=new JLabel("Nama").100). getContentPane().33 public static void main(String args[]) { twoListener two = new twoListener(). FlowLayout import javax. import java.add(nim). getContentPane(). JLabel nim=new JLabel("NIM"). setDefaultCloseOperation(JFrame. setVisible(true).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .setLayout(new FlowLayout()).120).add(txnim). } } 3. JTextField txnim=new JTextField(7).4 LayoutManager a. setSize(450.*. flowlayout(){ setTitle("FlowLayout"). getContentPane().add(nama). .awt. } void komponenVisual(){ getContentPane(). JButton tombolSimpan=new JButton("Simpan").*.add(txnama). setLocation(200. getContentPane().swing.

EXIT_ON_CLOSE). setVisible(true)."South"). } public static void main(String args[]) { borderlayout2 bl = new borderlayout2().awt. getContentPane(). setDefaultCloseOperation(JFrame. getContentPane(). getContentPane(). } } I . center = new JButton("CENTER"). } void komponenVisual() { getContentPane(). public class borderlayout2 extends JFrame { JButton JButton JButton JButton JButton north = new JButton("NORTH"). } } .swing.add(center.2)). import javax.setLayout(new BorderLayout(2. BorderLayout import java.*.add(east."East").add(north. komponenVisual()."North")."West"). setSize(300.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI } public static void main(String args[]){ flowlayout fl=new flowlayout().add(south. borderlayout2() { setTitle("BorderLayout").200). west = new JButton("WEST"). east = new JButton("EAST"). getContentPane().add(west. getContentPane().300).34 b.*. south = new JButton("SOUTH")."Center"). setLocation(300.

3)).35 Kode program yang digunakan untuk pengaturan BoderLayout adalah : getContentPane(). method add membutuhkan argumen nama obyek dan salah satu dari posisi layout yang telah disediakan dalam BorderLayout().*.awt. getContentPane(). enam=new JButton("6").EXIT_ON_CLOSE). class gridlayout extends JFrame{ JButton JButton JButton JButton JButton JButton JButton JButton JButton satu=new JButton("1"). GridLayout import javax. getContentPane().200).*. setDefaultCloseOperation(JFrame. komponenVisual(). tiga=new JButton("3").PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . } void komponenVisual(){ getContentPane().setLayout(new BorderLayout()).100). setSize(200.swing. gridlayout(){ setLocation(200. empat=new JButton("4"). getContentPane().add(dua). dua=new JButton("2"). tujuh=new JButton("7"). lima=new JButton("5"). c.add(nama. sembilan=new JButton("9"). .setLayout(new GridLayout(3. delapan=new JButton("8").add(satu). "North"). import java.

awt."Yogyakarta".add(tiga). getContentPane(). JLabel kuan = new JLabel("Kuantitas Pesanan")."Jakarta".36 } public static void main(String args[]){ gridlayout fl=new gridlayout().add(delapan). getContentPane(). getContentPane().swing. JLabel men = new JLabel("Menuju").add(tujuh). getContentPane(). getContentPane(). . JLabel tanggal = new JLabel("Tanggal Berlaku"). dimana angka 3 pada argumen GridLayout menunjukkan banyaknya baris dan 3 menunjukkan banyaknya kolom.*. JLabel dar = new JLabel("Dari").*.add(sembilan). import java. } } Kode program yang digunakan untuk pengaturan GridLayout adalah : getContentPane().add(empat). JTextField tan = new JTextField(). String[] jenisasal={"Surabaya". setVisible(true). JButton tble = new JButton("Edit"). JTextField nam = new JTextField().add(lima). JPanel import javax. public class panellayout extends JFrame { JLabel cust = new JLabel("Nama Customer"). d. JLabel ker = new JLabel("Nama Kereta")."Semarang". JButton tblx = new JButton("Exit"). JLabel petug = new JLabel("Petugas"). I .add(enam). JButton tbls = new JButton("Simpan").3))."Mal ang"}.setLayout(new GridLayout(3."Bandung".PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI getContentPane(). getContentPane().

} void komponenVisual() { north."Jakarta".add(ker). JPanel kosong1 = new JPanel()."2"."5". north.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . JPanel back_e = new JPanel(). JComboBox cbpetugas=new JComboBox(petugas). north. JPanel kosong4 = new JPanel().add(cbkereta). JComboBox cbpesan=new JComboBox(pesan).add(kosong). JPanel kosong6 = new JPanel()."Wilis"}. JPanel back_n = new JPanel(). JComboBox cbkereta=new JComboBox(jeniskereta). setSize(400.add(nam).add(tanggal). JPanel kosong5 = new JPanel()."Senja"."Argo". north. JPanel east = new JPanel().add(cbasal).5)). JPanel north = new JPanel().300). JPanel kosong3 = new JPanel().setLayout(new GridLayout(8.1."Rizky"."Dien"."M alang"}.EXIT_ON_CLOSE). south."Semarang". south. setDefaultCloseOperation(JFrame. 250). JPanel kosong = new JPanel(). String[] jenistujuan={"Surabaya". south.1. JPanel back = new JPanel()."3". south. .37 JComboBox cbasal=new JComboBox(jenisasal). setLocation(300. north.5. JComboBox cbtujuan=new JComboBox(jenistujuan). String[] jeniskereta={"Mutiara Selatan".setLayout(new GridLayout(8."Taufan".add(kuan). komponenVisual()."Viska".5)). JPanel kosong2 = new JPanel()."4". JPanel back_s = new JPanel().add(tbls).add(tan). south."Putra"}."Bandung". String[] pesan={"1".add(petug).5. panellayout() { setTitle("Kompleks Layout"). JPanel south = new JPanel(). String[] petugas={"Yuni"."Gambir".add(cbpesan)."Cempaka". JPanel back_w = new JPanel(). north. south.add(dar).add(cust). north. north."6"}."Yogyakarta". north.

add(kosong1).add(back_s. getContentPane(). east.add(cbtujuan). east.add(back_w. back. back. east."North").add(kosong3)."Center"). getContentPane().5. east. back.5 Grafis a. getContentPane(). import java.add(back_e.add(kosong4)."East").add(north).add(kosong5).5)).add(kosong6).add(cbpetugas). Primitive Drawing import java. east.*. getContentPane().38 3."West"). getContentPane().3.event.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI south. south.1.awt. east.awt. south.*.setLayout(new GridLayout(1.5)).add(south).add(back_n. east. east. } public static void main(String args[]) { panellayout pl = new panellayout().5.add(men). getContentPane().add(kosong2).*. setVisible(true).add(back.add(east). . import javax. } } I .add(tblx). back. east.add(tble).setLayout(new GridLayout(8.setLayout(new BorderLayout()).swing."South").

} } public class Menggambar extends JFrame { Kanvas gambar = new Kanvas().black).setColor(Color.setColor(Color. setSize(300.250.red).20. } } Penjelasan dari sintak-sintak program di atas adalah sebagai berikut: class Kanvas1 extends Canvas{ public void paint(Graphics g){ } } . g.100.add(gambar.50.200).blue). g.50). g.10.drawLine(10. g.setColor(Color. setLocation(300. g. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE).20.drawRect(10.drawString("Selamat Belajar". g. Menggambar() { super("Aplikasi grafis sederhana").setLayout(new BorderLayout()).setColor(Color. } void komponenVisual() { getContentPane().150).drawOval(120. komponenVisual(). g. getContentPane(). 100.10).50).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . setVisible(true).100). } public static void main(String args[]) { Menggambar gb = new Menggambar().red).39 class Kanvas extends Canvas { public void paint(Graphics g) { g."Center").

20. Digunakan untuk mengatur warna dari obyek gambar setelah baris tersebut dituliskan.250. Pada class ini kita membentuk obyek menggunakan class Kanvas1 dengan nama gambar. g.red). Pada method paint() di atas tidak terdapat baris kode apapun sehingga output yang muncul adalah frame kosong tanpa gambar apapun. g. getContentPane()..red).red). . Class inilah yang digunakan untuk meletakkan gambar yang kita bangun menggunakan kode-kode tertentu.blue).drawLine(10. } Class Menggambar adalah program aplikasi grafis kita. } } Penjelasan sintaks-sintaks di atas adalah sebagai berikut : g. g..add(gambar.setColor(Color..50)...setLayout(new BorderLayout()).50).100).drawOval(120.. misalnya kita isi dengan sintaks berikut : class Kanvas extends Canvas{ public void paint(Graphics g){ g.CENTER)...10.drawRect(10. g.. Kode-kode tersebut diletakkan dalam method paint.setColor(Color.. Layout diatur menggunakan BorderLayout dan obyek gambar diletakkan dalam salah satu diantara lima posisi yang ada.10).. g.BorderLayout.. g..40 Sintaks ini merupakan class tempat menggambar berbagai obyek gambar.250.50.10). .PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . Output dari program di atas berupa frame kosong tanpa gambar apapun.drawLine(10. Kanvas gambar=new Kanvas()..100.setColor(Color. class Menggambar extends JFrame { Kanvas gambar=new Kanvas(). g. Obyek gambar ini kemudian dimasukkan dalam method komponenVisual() untuk menampilkan di frame dengan cara: getContentPane(). .setColor(Color..setColor(Color..black)..drawString("Selamat Belajar". g.10. Method paint() pada Class Kanvas1 dapat diisi dengan berbagai sintaks untuk membuat aplikasi grafis...20. 100.

g.*.awt.startY. } public void paint(Graphics g) { if(event == null){ return.setColor(Color. String modifier = "".setColor(Color. Mouse Tracking dengan Canvas import java. m_canvas() { setBackground(Color. class m_canvas extends Canvas { int startX. } g.length() > 0) { g.41 Digunakan untuk mengambar bentuk garis dimana argumen pertama dan kedua menunjukkan koordinat titik awal garis.BLACK).50.swing. argumen ketiga dan keempat menunjukkan koordinat titik akhir garis. Digunakan untuk menggambar bentuk string.awt. } g.WHITE).event.drawRect(10. argumen kedua dan ketiga menunjukkan posisi dari tulisan.RED). 100. argumen krtiga jarak horisontal dan argumen keempat adalah jarak vertikal. argumen ketiga dan keempat menunjukkan ujung kanan bawah dari segi empat.*. g. Digunakan untuk menggambar bentuk lingkaran dimana argumen pertama dan kedua merupakan koordinat pusat. Digunakan untuk menggambar bentuk segi empat dimana argumen pertama dan kedua merupakan ujung kiri atas. b.drawString("Mouse event type: "+ event.18).20.drawString("Selamat Belajar". if(modifier. g. String event = null.50). g.drawString("Modifier Key: "+ modifier. Argumen pertama merupakan string yang akan ditampilkan.20.50).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .drawOval(120.34).*. 6. .100. import javax. 6. import java.100).

} void komponenVisual() { getContentPane(). } }). } repaint().42 public class mouseTrack extends JFrame { m_canvas mc = new m_canvas().isControlDown()) { modifier +="Control ". aksi(). startY = e. } void setInfo(MouseEvent e. if(e.event = type.isAltDown()) { modifier +="Alt ". } void aksi(){ mc. mouseTrack() { setTitle("Mouse Track!"). setSize(300. setVisible(true).setLayout(new BorderLayout(3."Center").300).addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { mc.3)).startY). mc.add(mc. komponenVisual(). modifier = "".getX(). } if(e. setLocation(300. } if(e.150). startX.EXIT_ON_CLOSE). } if(e. String type) { this."+startY+")". } } I .setInfo(e. startX = e.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { .getY().isShiftDown()) { modifier +="Shift ".isMetaDown()) { modifier +="Meta ".drawString("("+startX+"."mouseDragged"). setDefaultCloseOperation(JFrame. getContentPane().PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI g.

mc. mc."mousePressed").43 .setInfo(e.setInfo(e."mouseEntered").addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { mc. mc. mc. } }).setInfo(e. } }). mc. } }).setInfo(e. } public static void main(String args[]) { mouseTrack mt = new mouseTrack().PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI mc.addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { mc.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { mc."mouseClicked")."mouseReleased").addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent e) { mc. } }). } } I ."mouseMoved")."mouseExited"). } }).setInfo(e. } }).setInfo(e.addMouseListener(new MouseAdapter() { public void mouseExited(MouseEvent e) { mc.

font3 = new Font("Monospaced". k_font (){ this(null). font5. font3. 14). (float)Math.setFont(font3). class k_font extends Canvas { Font font1.awt. Font.swing. . java. Font.event.setFont(font1). case 2: g.*. new Font("SansSerif".Component.PLAIN. break.setFont(font5). for (int i=0.BLACK).awt.random().ITALIC. int height = getHeight(). break. break. 30). } g.random())). if (message == null ) { message = "Java !". font5 = new Font("Serif". Animasi Font dengan Canvas import import import import java. case 4: g. break. Font.*.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .*. case 3: g. java. case 5: g. javax. break. 24). switch(fontNum) { case 1: g.awt.ITALIC. font2. i<25. font4 = new Font("Dialog". } public void paint(Graphics g) { int width = getWidth().setColor(new Color((float)Math. setBackground(Color.BOLD.44 c. (float)Math.setFont(font4).i++) { int fontNum = (int)(5 * Math. font4. String message. 36).BOLD + Font. Font.random()) + 1.setFont(font2). } font1 = font2 = new Font("Serif".random(). Font. 48).PLAIN. } k_font (String stringMessage) { message = stringMessage.

} } public class animasiFont extends JFrame { k_font k = new k_font (). x = -50 + (int)(Math.250).drawString(message. g. source.random() * (width+40)).addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Component source = (Component) e.getSource(). setSize(300.add(k. x.setLayout(new BorderLayout()). setDefaultCloseOperation(JFrame."Center"). y). getContentPane(). } } . y = (int) (Math. } }).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . aksi(). } void komponenVisual(){ getContentPane(). setVisible(true).repaint(). komponenVisual(). setLocation(300. } public static void main(String args[]) { animasiFont n = new animasiFont().random() * (height + 20)).EXIT_ON_CLOSE).45 int x. } void aksi() { k.y.300). } animasiFont (){ setTitle("animasiFont ").

fillRect(x-30.*.setColor(Color. 30). import java. y-15. case 2: g.dispose().y. break. 60. y-15. import javax. . } g. y-15. 60.*.BLACK).BLUE). 60. g. break. 60. break.BLACK).BLACK). 30). class simpleStampCanvas extends Canvas { int p = 0. g.BLACK). } public void paint(Graphics g) { switch(p) { case 0: setBackground(Color.*. g. g. y-15.setColor(Color.drawOval(x-30.46 d. 30).awt.swing.RED).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . Simple Stamp import java. g.awt. g.event.setColor(Color. case 1: g.setColor(Color.fillOval(x-30. 30). int x .drawRect(x-30. simpleStampCanvas() { setBackground(Color.

setSize(300.150).add(ssC.isShiftDown()) ssC.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . } public static void main(String args[]) { . else } } }). else ssC.getY(). } void aksi() { ssC.y = e.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { ssC. "Center"). } else{ if(e.p = 2 .300). aksi(). ssC. simpleStamp() { setTitle("Simple Stamp"). setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE). } void komponenVisual() { getContentPane().p = 0.isMetaDown()) { if(e. ssC. setLocation(300. setVisible(true).isShiftDown()) ssC. komponenVisual().p = 1.repaint().getX(). getContentPane().setLayout(new BorderLayout()).47 } } public class simpleStamp extends JFrame { simpleStampCanvas ssC = new simpleStampCanvas().p = 0. if(e. ssC.x = e.

drawRect(0.width-3.0. import javax. CYAN = 4.awt.swing. prevY.56.height-5).height). boolean drag.setColor(Color. aksi(). int currentColor = BLACK.height-3). g. g.*. Graphics lembarLukis.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI simpleStamp ss = } } Saat Klik Kiri Saat Klik Kanan Saat klik+shift new simpleStamp(). kanvas() { setBackground(Color.WHITE). int prevX. RED = 1.drawRect(2.width-5.*.48 e. /*membuat border untuk canvas*/ g.event.56) /7.height-1).2.GRAY). . YELLOW = 6.drawRect(1. int height = getHeight(). I . g. /*membuat canvas untuk pallete warna*/ g. class kanvas extends Canvas { private final static int BLACK =0.width-1.0. /*membuat pembagian untuk 7 pallete warna*/ int colorSpacing = (height .*.fillRect(width-56. import java. } public void paint(Graphics g) { int width = getWidth(). Program Paint import java.awt. MAGENTA= 5.1. GREEN=2. BLUE = 3.

50. g. g.colorSpacing-3).51. int colorSpacing = (height-56)/7. g.colorSpacing-3). height-23). g.2+currentColor*colorSpacing. g.fillRect(width-53.height-53.YELLOW). g. g. g.setColor(Color.fillRect(width-53.setColor(Color. //mendapatkan range dari if(newColor>0 || newColor<6) { // pastikan bahwa hasil pembagian berada pada range yang benar Graphics g = getGraphics().drawRect(width55.fillRect(width-53. g.colorSpacing-3).drawString("CLEAR".50).3+5*colorSpacing.RED).2+currentColor*colorSpacing.fillRect(width-53. g.setColor(Color.drawRect(width-53.drawRect(width54. int height = getHeight().50.53.setColor(Color. g. g.fillRect(width-53.50.49.colorSpacing-2). .setColor(Color.width-48. g.BLACK).colorSpacing).PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .GRAY).setColor(Color.colorSpacing-2). /*membuat borde 2 pixel di antara pallette warna */ g.height-53.colorSpacing-3).3+1*colorSpacing.50. g.MAGENTA).colorSpacing-3).setColor(Color.3+6*colorSpacing.50. g.setColor(Color.3+4*colorSpacing.fillRect(width-53.1+currentColor*colorSpacing.WHITE). int newColor = y / colorSpacing.colorSpacing).50. g.3+0*colorSpacing. } public void gantiWarna(int y) { int width = getWidth().BLACK). /*membuat 7 pallete warna dengan batuan colorSpacing*/ g.49). g.51.fillRect(width-53. pallete /*pallete lama di set kembali denan border abu-abu*/ g.BLUE).fillRect(width-53.setColor(Color.49 /*membuat clear button*/ g.drawRect(width55.colorSpacing-3).WHITE).50.3+3*colorSpacing.GREEN).1+currentColor*colorSpacing.colorSpacing-3).setColor(Color. g.setColor(Color.CYAN).drawRect(width54.50. g. g.53.3+2*colorSpacing. g.

//y koordinat saat user mengklik int width = getWidth(). break.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { int x = e. g. case MAGENTA: lembarLukis.51.getY().setColor(Color. g.setColor(Color.getX().WHITE).MAGENTA).drawRect(width55. } } /*Routine yang dipanggil oleh mousePressed ketika user mengklick area dari canvas gambar*/ /*Routine ini mengeset pallete warna */ void setWarna(){ lembarLukis = getGraphics(). switch(currentColor){ case BLACK: lembarLukis.RED).setColor(Color. break. break. case RED: lembarLukis.setColor(Color.BLACK). case GREEN: lembarLukis. //lebar canvas int height = getHeight(). break.CYAN). //tinggi canvas .YELLOW). case CYAN: lembarLukis.2+currentColor*colorSpacing.setColor(Color.50 } void aksi() { this.setColor(Color. break.dispose().53.drawRect(width54.colorSpacing-2). break. break. g.setColor(Color. case YELLOW: lembarLukis.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI /*pallete baru di set dengan border putih*/ currentColor = newColor. //x koordinat saat user mengklik int y = e.1+currentColor*colorSpacing. } I .BLUE).colorSpacing).GREEN). case BLUE: lembarLukis. g.setColor(Color.

53) { //user mengclik } else { //user mengclik pada area } gantiWarna(y). } . setWarna(). //mulai menggambar dari point ini prevY = y.dispose(). //x koordinat saat user int y = e.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .getY(). } } } }). } } //akhir mouse released }).addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if (drag == true){ drag=false.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { if (drag == true){ mengklik mengklik /*menormalkan koordinat*/ int x = e. repaint(). //y koordinat saat user if ( x<3) { x = 3. lembarLukis.getX(). lembarLukis = null. this. drag = true.51 if (drag == false) { pada area pallete pada area clear if (x > width -53) { // user mengclik if(y > height . pallete warna } else if(x>3 && x < width-56 && y > 3 && y < height -3) { //user mengclik pada area canvas gambar prevX = x. //akhir mouse ditekan this.

} void komponenVisual(){ getContentPane(). } if(y>getHeight() -4) { y = getHeight() -4.300).x. } } public static void main(String args[]) { melukis lukis = new melukis(). setVisible(true). setSize(600. } .PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI if (x > getWidth() -57 ) { x = getWidth() -57. } lembarLukis.y).480). setDefaultCloseOperation(JFrame. } } //akhir mouse released I . prevY.add(kv).drawLine(prevX. prevY = y. komponenVisual(). setLocation(300.EXIT_ON_CLOSE). prevX = x. melukis() { setTitle("Mari melukis yuk!"). } if (y<3) { y=3. } } public class melukis extends JFrame { kanvas kv = new kanvas().52 }).

aksi(). } else { g.53 f. } public void paint(Graphics g) { int width = getWidth(). KeyboardEvent import java. canvas_k() { setBackground(Color.WHITE). int boxX. if(hasFocus()) { g.setColor(Color.awt.awt.*. boxY. class canvas_k extends Canvas { final int ukuranBox = 40.*. import javax. int height = getHeight(). import java.RED. boxY = 100.LIGHT_GRAY).*.event. boxX = 100.swing. Color warnaBox.setColor(Color. } .PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .CYAN). warnaBox = Color.

width-1.VK_LEFT) { boxX -= 8.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { repaint().height-3).7. boxY.drawString("Tanda panah untuk menggerakkan!".drawString("Klik untuk mengaktifkan!". B untuk ganti warna". } } void aksi() { this.height-1). } else if(key == KeyEvent.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { repaint().drawRect(1.1. g. } repaint(). } repaint(). } }). } }). ukuranBox.getKeyCode().drawString("K.VK_RIGHT) { boxX +=8.height-5). if(boxX > getWidth() -3 . . if(hasFocus()) { g.7.ukuranBox. g. } else { g. g. 40).setColor(Color.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . G.ukuranBox) { boxX = getWidth() -3 . g.7.VK_UP) { boxY -=8.width-3. 20). R.0. g. } else if(key == KeyEvent.RED). if(key== KeyEvent. this. ukuranBox).drawRect(2. 20). this. g.2. if(boxX < 3) { boxX = 3.fillRect(boxX.drawRect(0.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { int key = e.width-5.54 g.setColor(warnaBox).

} this.BLACK. setLocation(100. } }).100).addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { requestFocus(). keyboardEvent2() { setTitle("Keyboard Event"). } } public class keyboardEvent2 extends JFrame { canvas_k ck = new canvas_k().55 } }).3 . if(boxY > getHeight() .RED. repaint(). I . } else if(key== 'G' || key== 'g' ) { warnaBox = Color. } repaint(). } else if(key== 'B' || key== 'b' ) { warnaBox = Color. } this. repaint(). .3 .GREEN.ukuranBox..addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char key = e. } }). } repaint().VK_DOWN) { boxY +=8. } else if(key== 'R' || key== 'r' ) { warnaBox = Color. } else if(key == KeyEvent.BLUE. if(key== 'K' || key== 'k' ) { warnaBox = Color. repaint().PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI if(boxY < 3) { boxY = 3 . repaint().getKeyChar().ukuranBox) { boxY = getHeight() .

add(ck). } void komponenVisual(){ getContentPane(). } I .EXIT_ON_CLOSE). setDefaultCloseOperation(JFrame. } public static void main(String args[]) { keyboardEvent2 kb = new keyboardEvent2().56 } 4.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI setSize(300. komponenVisual(). Tugas a. Buatlah tampilan GUI seperti di bawah ini(gunakan cara manual): .300). setVisible(true).

maka akan muncul tampilan gambar : Bila angka yang kita masukkan tidak sesuai. dengan tampilan sebagai berikut: Bila kita masukkan sebuah bilangan ke dalam textfield dan bilangan tersebut sesuai dengan bilangan yang kita tentukan.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I . Buatlah sebuah program tebak angka. maka akan muncul tampilan gambar: .57 b.

setHorizontalAlignment(JTextField.58 Dan ketika kita memasukkan sebuah bilangan baru ke dalam textfield maka tampilan akan kembali ke kondisi awal. Buatlah Layout Calculator dan tambahkan eventHandlernya di bawah ini(gunakan layout manager): Gunakan method JTextField. Modifikasi program seperti di bawah ini: . d.RIGHT) untuk rata kanan. c.PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .

59 e. Buatlah satu aplikasi yang menggunkan minimal event handler di bawah ini dan class Cnavas(contoh Game): .PEMOGRAMAN BERORIENTASI OBJEK Pengenalan Java GUI I .

Sign up to vote on this title
UsefulNot useful