Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
PERTEMUAN 2 PBOL Dewi Kusumaningsih, M.Kom Konsep GUI • Konsep Pemrograman GUI • Pada dasarnya pemrograman GUI, adalah pemrograman yang mengandalkan kemampuan tampilan dalam bentuk grafik. dimana program yang dibuat dapat memberikan kenikmatan tersendiri dalam penggunaannya. Tidak lagi monoton, hitamputih, mode DOS dan lain sebagainya. Kalau kita lihat pada gambar berikut, menjelaskan bahwa interaksi yang terjadi antara user dengan program melalui sebuah tampilan yang sudah berbentuk grafik. Pertanyaan mendasar mengenai penggunaan tampilan atau GUI dalam program adalah seberapa penting hal itu dilakukan. Konsep GUI • GUI → Graphical User Interface • GUI memberikan mekanisme user-friendly untuk berinteraksi dengan aplikasi Java yang dibuat (aplikasi mudah digunakan dan cepat dipelajari bahkan untuk orang awam sekalipun) • Komponen GUI adalah objek dimana user berinteraksi dengan objek itu menggunakan mouse, keyboard, dan bentuk inputan lain. Konsep GUI • Dalam Java, sebenarnya terdapat 2 package yang dapat digunakan untuk mengembangkan program-program GUI, yaitu AWT (Abstract Window Toolkit) pada package java.awt dan SWING pada package javax.swing Konsep GUI • Untuk program yang hanya ditempatkan pada sisi komputer server yang jarang berinteraksi dengan pengguna, maka fungsi dasar program dirasa cukup memadai. • apabila program tersebut diperkirakan akan banyak berinteraksi dengan pengguna, maka ada baiknya jika program menggunakan tampilan. • Beberapa alasan bahwa program harus menggunakan tampilan, yaitu : – – – – Dengan tampilan, program akan nampak jauh lebih menarik Interaktif User Friendly atau mudah dalam penggunaannya Dapat berinteraksi dengan peralatan seperti mouse, joystick dan peralatan lainnya. Konsep GUI • Sedangkan interaksi yang terjadi antara pengguna dengan komponen GUI dapat dilakukan dengan beberapa cara diantaranya : – – – – – – Dengan penekanan komponen tombol. Dengan membuat pilihan pada menu. Melakukan enter pada objek text. Pergerakan tombol scroll bar. Dengan penekan tombol close pada objek wondows. Dll. Konsep GUI Tiga tipe program yang berbasis kepada GUI komponen 1. Graphical components (GUI) Yaitu berupa rancangan tampilan program yang dikemas dengan menggunakan komponen-komponen grafik. 2. 3. Listener methods Yaitu berfungsi untuk menerima dan merespon event yang terjadi Application methods Fungsi-fungsi atau baris perintah yang berguna bagi pengguna untuk menghasilkan kegiatan dalam bentuk respon. Graphical components (seperti tombol), listener methods berguna menerima events dari tombol yang di click dan application methods berisi program yang akan dijalankan saat event terjadi. Konsep GUI • Class/Komponen GUI pada aplikasi – Banyak sekali komponen yang sudah disiapkan oleh java untuk membuat sebuah tampilan yang berbentuk GUI. – Namun pada bagian ini yang akan dijelaskan adalah komponen-komponen yang terkait dengan aplikasi yang akan di buat atau dipaparkan dalam perkuliahan ini saja – Daftar komponen yang akan digunakan atau yang akan dipaparkan dalam perkuliahan ini dapat dilihat pada tabel berikut : • AWT adalah sekumpulan library yang tidak tergantung platform (platform independent) dan digunakan untuk menyederhanakan implementasi user-interface • SWING adalah bentuk implementasi selanjutnya yang menambahkan komponenkomponen dalam sistem GUI tapi masih didasarkan pada arsitektur AWT (misalnya : untuk pembuatan event handling) • Mengapa kita menggunakan SWING daripada AWT??? Pada kenyataan di lapangan, programprogram GUI yang ada saat ini (tentunya yang dibuat dengan Java) banyak dikembangkan dengan menggunakan komponen-komponen SWING (bukan menggunakan AWT) Komponen/Class GUI Beberapa komponen atau class GUI yang akan diapakai pada aplikasi : No. Nama Komponen 1. JWindow Kegunaan Untuk membuat window atau frame yang menjadi latar belakang komponen-komponen lain. 2. JLabel Untuk membuat tulisan yang akan menjelaskan komponen lain, dapat juga berupa gambar. 3. 4. JProgressBar Timer 5. Dimension 6. JFrame 7. JDesktopPane 8. JMenuBar 9. JMenu Untuk membuat baris progress. Untuk mengatur waktu tampilan. Untuk mengambil dimensi screen monitor. Untuk membuat frame biasa. Untuk membuat frame induk yang disisipkan pada frame biasa. untuk menampung dan menampilkan menu baris (Pulldown Menu). Untuk membuat menu baris dan sub menu yang merupakan induk dari sub menu yang lain. Komponen/Class GUI Untuk membuat sub menu yang merupakan menu terakhir. 10. JMenuItem 11. JPopupMenu 12. JToolBar Untuk menampung dan menampilkan menu popup. Untuk menampung dan menampilkan menu dalam bentuk toolbar. 13. JPanel Untuk menampung objek/komponen lain 14. JButton Untuk membuat tombol. 15. Date Untuk mengambil fungsi tanggal dan jam aktif 16. SimpleDateFormat Mengatur format tampilan 17. String Class tipe data 18. JInternalFrame Untuk membuat frame anak. 19. JTextField Untuk menginput string 20. JTextArea Untuk menginput string yang lebih dari satu baris Komponen/Class GUI 21. JScrollPane 22. JComboBox Untuk membuat objek tabel Untuk membuat objek kombo yang berisi daftar pilihan. 23. ButtonGroup Untuk membuat objek group sebagai tempat objek radiobutton. 24. 25. 26. 27. 28. JRadioButton JTabel JOptionPane Integer PrinterJob 29. Graphics2D 30. 31. 32. Connection Statement ResultSet Untuk membuat objek pilihan Untuk membuat objek tabel Untuk menampilkan kotak dialog Class tipe data Untuk mengaktifkan printer dialog Untuk membuat objek grafik dua dimensi. Untuk membuat objek koneksi. Untuk membuat statement. Untuk menampung hasil query. Komponen/Class GUI Sedangkan daftar package yang digunakan pada aplikasi, dapat dilihat pada tabel berikut: No. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Nama Package java.awt.* javax.swing.*; java.awt.event.*; javax.swing.border.LineBorder; java.util.*; java.text.*; javax.swing.Timer; java.sql.*; java.io.*; javax.swing.table.DefaultTableModel; import java.lang.*; import java.awt.print.*; Komponen/Class GUI • Komponen asli/original berasal dari package Abstract Window Toolkit (AWT) • Untuk melakukan interaksi antara komponen dengan user perlu ditambahkan Interface. Dimana daftar interface yang digunakan pada aplikasi, dapat dilihat pada Tabel berikut No. 1. 2. 3. 4. 5. Nama Interface ActionLIstener FocusListener KeyListener KeyAdapter Printable CONTOH PROGRAM GUI Saat kita membuat program java GUI, yang pertama kali kita harus kuasai adalah penggunaan JFrame. JFrame digunakan untuk mendesain model tampilan yang didalamnya dapat kita tempatkan komponen-komponen lainnya. Contoh penggunaan tampilan frame pada program java : //program pertama //Tidak Menggunakan Construktor import javax.swing.JFrame; class frame1{ public static void main(String args []){ JFrame tampil = new JFrame(); tampil.show(); } } CONTOH PROGRAM GUI //program kedua //menggunakan konstruktor import javax.swing.*; class frame21 extends JFrame{ frame21(){ //construktor show(); } } class frame2{ public static void main(String args[]){ new frame21(); } } CONTOH PROGRAM GUI • Apabila kedua program tersebut dikompilasi dan dijalankan maka akan terdapat tampilan seperti dibawah ini : CONTOH PROGRAM GUI Untuk membuat frame dengan tulisan “Universitas Budi Luhur”, pada posisi x = 10 dan Y = 100, lebar = 300, tinggi = 200, Resizable false, dan akan terhapus di alokasi memori setelah aplikasi di tutup seperti pada gambar sebagai berikut : CONTOH PROGRAM GUI //program ketiga import javax.swing.*; class frame61 extends JFrame{ frame61(){ super("Universitas Budi Luhur"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation (10,100); this.setSize(300,200); setResizable(false); show(); } } class frame62{ public static void main (String args[]){ new frame61(); } } CONTOH PROGRAM GUI • • Grafik dua dimensi (2D) menggunakan class yang terdapat pada java.awt.*, yaitu Canvas. Komponen Canvas tersebut berbentuk kotak kosong pada layar. Didalam Canvas tersebut dapat kita gunakan sebagai media gambar 2 (dua) dimensi. Penggunaan Canvas harus dibarengi dengan sub class paint sebagai media gambar yang berupa perintah. Cara menggabungkan penggunaan Canvas dan Jframe adalah sebagai berikut : //program ke empat import javax.swing.*; import java.awt.*; //Class Canvas class grap1 extends Canvas{ public void paint (Graphics g){ //(x,y,width,height) g.drawRect(1,5,50,20); g.drawLine(35,50,100,70); //(x,y,width,height,arcwidth,archeight g.drawRoundRect(1,50,30,40,5,100); g.setColor(Color.YELLOW); //set warna g.drawOval(110,50,40,30); g.setFont(new Font("Tahoma",Font.ITALIC,20)); g.drawString("9511500134",80,15); g.setColor(Color.BLUE); //set warna g.fillRect(1,110,30,20); g.fillOval(50,110,30,20); } } //Class frame class grap11 extends JFrame{ private Container konten=new Container(); private grap1 duaD =new grap1(); grap11(){ super("Universitas Budi Luhur"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(250,200); konten= getContentPane(); konten.add(duaD); show(); } public static void main(String args[]){ new grap11(); } } • Perumpamaan membuat gambar 2D menggunakan objek Canvas adalah seperti menggambar pada sebuah kertas kosong dengan pensil gambar. Hanya saja penggunaan objek Canvas menggunakan posisi piksel pada frame. • Posisi 0 pada horizontal (X=0) dan posisi 0 pada vertikal (Y=0), menunjukan posisi tersebut berada pada posisi ujung paling kiri dan paling atas dari frame. • Jika X > 0 maka posisi berada ke arah kanan dari frame, sedangkan jika Y > 0 maka posisi berada ke arah bawah dari frame. • Banyak objek yang dapat digunakan untuk menggambar 2D pada Canvas, yaitu bulat, kotak, garis dan lain-lain. Pada gambar terdapat beberapa objek, yaitu : – Kotak • drawRect (x,y,width, height) – Kotak dengan bundaran di pinggir • drawRoundRect (x, y, width, height, arcwidth, archeight) – Kotak dengan warna didalamnya • fillRect (x,y,width,height) – Penggunaan Font • setFont(new Font("<Model Font>", <STANDAR|BOLD|ITALIC>, <Size>)) – String • drawstring(“<tulisan>”,x,y) – Garis • drawLine(x,y,width,height) – Bundar • drawOval(x,y,width,height) – Bundar dengan warna didalamnya • fillOval(x,y,width, height) – Pewarnaan • setColor(<color>) Ketika hendak menggunakan Class pertama pada class kedua (frame) perlu menggunakan perintah : private grap1 duaD =new grap1(); Kemudian class pertama tersebut ditampilkan pada JFrame dengan menggunakan perintah : konten.add(duaD); Merancang Program Logo, Sesuai Contoh Aplikasi /* ---------------------------------------------------------------------------------------------------Nama Program : SIP.java Dipanggil Oleh :Keterangan : Program Splash dengan Logo dan Baris Progres Dibuat Oleh : AEndF@2008, Versi Update ---------------------------------------------------------------------------------------------------*/ // Deklarasi package import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.border.LineBorder; // Deklarasi class public class SIP extends JWindow { private Dimension dimensi = Toolkit.getDefaultToolkit().getScreenSize(); private JLabel lblLogo = new JLabel(new ImageIcon ("Gambar/sip.jpg")); private JProgressBar barisProgres = new JProgressBar(); private int time = 0; private Timer timer; // Deklarasi konstruktor public SIP () { // Mengatur warna garis pinggir barisProgres.setBorder(new LineBorder (Warna, 1)); lblLogo.setBorder (new LineBorder (Warna, 1)); // Menempatkan objek ke container getContentPane().add(lblLogo, BorderLayout.NORTH); getContentPane().add(barisProgres,BorderLayout.CENTER); // Mengatur lama window logo tampil pada layar monitor timer=new Timer(50,new ActionListener(){ public void actionPerformed(ActionEvent evt){ time++; barisProgres.setValue(time); if(barisProgres.getPercentComplete()==1.0){ timer.stop(); setVisible(false); // menjalankan menu utama. // new Menu_Utama(); } }}); timer.start(); // Menyiapkan variabel warna. Color Warna = Color.blue; // Mengatur baris progress barisProgres.setValue(0); barisProgres.setPreferredSize(new Dimension(100,15)); barisProgres.setBackground(Color.white); barisProgres.setForeground(Color.red); barisProgres.setStringPainted(true);// Menemparkan objek kememori sebelum ditampilkan pack(); // Mengatur lokasi window tepat ditengah layar monitor setLocation (dimensi.width / 2 - getWidth() / 2, dimensi.height / 2 - getHeight() / 2); // menampilkan window ke layar monitor show(); } // Deklarasi metode utama public static void main (String args[]) { new SIP (); } }