Java Applets Pertemuan 7 Matakuliah : M0864/Programming I Tahun : 2009 Java Applets Pertemuan 7
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: menerapkan penggunaan event-driven dan handling event pada pemograman Java. Bina Nusantara
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: mendemonstrasikan penggunaan Java Applet dalam sebuah aplikasi pemograman GUI di Java . Bina Nusantara
Outline Materi Introduction Java Applets Applets as Application Bina Nusantara
Introduction Graphic User Interface di Web. Animasi dan multimedia (gambar dan suara) dari Java di web. Contoh yang paling bisa dijumpai game sudoku.
Applet Class Java applet menggunakan kelas Applet. Sebagai framework yang memungkinkan untuk menjalankan applet dari sebuah web. Tidak memiliki fungsi main. Semua kelas yang menggunakan Applet wajib menurunkan kelasnya dari java.applet.Applet
Applet Class Ketika Applet dijalankan, web browser membuat sebuah instant dari Applet dengan memanggil konstruktor applet yang tidak mengandung argumen atau parameter. Untuk mengontrol applet, browser menggunakan fungsi : init, start, stop, dan destroy
Applet Class Fungsi init : Fungsi start : Dipanggil setelah applet dibuat. Kelas turunannya wajib meng-override fungsi ini. Biasanya digunakan untuk inisialisasi termasuk setting komponen user interface. Fungsi start : Dipanggil setelah fungsi init atau setiap kali halaman web dikunjungi. Menjalankan fungsi-fungsi yang akan dijalankan di applet seperti animasi.
Applet Class Fungsi stop : Fungsi destroy : Dipanggil ketika user meninggalkan halaman web yang mengandung applet. Applet menjadi tidak aktif. Kelas turunannya wajib meng-override fungsi ini. Fungsi destroy : Dipanggil ketika user menutup browser yang mengandung applet. Semua sumber dan objek objek dihapus. Dipanggil setelah fungsi stop dijalankan terlebih dahulu.
Applet Class Kerangka kelas turunan yang menggunakan Applet : Wajib di-override di kelas turunannya
Applet Class Kelas Applet tidak dirancang untuk bekerja dengan komponen Swing. Untuk menggunakannya pada komponen Swing maka Applet (java.applet.Applet) menurunkan kelasnya pada JApplet (javax.swing.JApplet) Layout default dari JApplet : BorderLayout.
Applet Class Contoh penggunaan JApplet : Kelas diatas tidak dapat dijalankan begitu saja karena tidak memiliki fungsi main. Harus membuat file HTML dengan menggunakan tag applet <applet> yang mereferensi ke applet tersebut. Browser akan secara otomatis akan membuat frame yang menghandel component GUI tersebut, memberi juga ukuran frame tersebut dan membuat frame tersebut tampil (visible).
Applet Class Contoh ketika Applet dipanggil oleh Web. Komponen JLabel yang dibuat oleh kelas SampelApplet
Applets as Application JApplet merupakan subclass dari kelas Container dan memiliki kesamaan fungsi dengan JFrame, seperti komponen user interfaces, layout managers, dan event-handling yang digunakan. Hal-hal yang tidak boleh dilakukan ketika menjalankan Applet: Tidak diperbolehkan membaca dari, menulis ke sistem file komputer, karena akan merusak file-file dan menyebarkan virus Tidak diperbolehkan untuk menjalankan program dari browser, karena akan merusak sistem lokal komputer. Tidak diperbolehkan melakukan hubungan antar komputer, kecuali untuk server dimana applet disimpan.
Applets as Application Untuk memanggil Applet sebagai applikasi maka kelas yang menggunakan Applet harus dibuatkan dahulu objeknya pada kelas yang memiliki fungsi main. Ada 2 cara menjalankan Applet sebagai applikasi : Menggunakan kelas yang ada fungsi main. Melempar String ke Applet dari halaman HTML.
Applets as Application Contoh penggunaan Applet sebagai aplikasi :
Draw line import java.applet.*; import java.awt.*; public class DrawingLines extends Applet { int width, height; public void init() { width = getSize().width; height = getSize().height; setBackground( Color.black ); } public void paint( Graphics g ) { g.setColor( Color.green ); for ( int i = 0; i < 10; ++i ) { g.drawLine( width, height, i * width / 10, 0 ); } } } Bina Nusantara University
3D graphics class Point3D { public int x, y, z; public Point3D( int X, int Y, int Z ) { x = X; y = Y; z = Z; } } class Edge { public int a, b; public Edge( int A, int B ) { a = A; b = B; } } http://www.dgp.toronto.edu/~mjmcguff/learn/java/11-3d/ Bina Nusantara University
Color public void paint( Graphics g ) { int radius = width / 3; for ( int i = 0; i < N; ++i ) { // Compute (x,y) positions along a circle, // using the sine and cosine of an appropriately computed angle. double angle = 2*Math.PI*i/(double)N; int x = (int)( radius*Math.cos(angle) ); int y = (int)( radius*Math.sin(angle) ); g.setColor( spectrum[ i ] ); g.drawString( "Color", width/2+x, height/2+y ); } } http://www.dgp.toronto.edu/~mjmcguff/learn/java/03-color/ Bina Nusantara University
Keyboard Input import java.applet.*; import java.awt.*; import java.awt.event.*; public class Keyboard1 extends Applet implements KeyListener,MouseListener { int width, height; int x, y; String s = ""; public void init() { width = getSize().width; height = getSize().height; setBackground( Color.black ); x = width/2; y = height/2; addKeyListener( this ); addMouseListener( this ); } Bina Nusantara University
Keyboard Input public void keyTyped( KeyEvent e ) { char c = e.getKeyChar(); s = s + c; repaint(); e.consume(); } } public void mouseReleased( MouseEvent e ) { } public void mouseClicked( MouseEvent e ) { x = e.getX(); y = e.getY(); s = ""; repaint(); e.consume(); } public void paint( Graphics g ) { g.setColor( Color.gray ); g.drawLine( x, y, x, y-10 ); g.drawLine( x, y, x+10, y ); g.setColor( Color.green ); g.drawString( s, x, y ); } } Bina Nusantara University
Combobox public class ComboBoxes extends JApplet { private String[] description = { "Ebullient", "Obtuse", "Recalcitrant", "Brilliant", "Somnescent", "Timorous", "Florid", "Putrescent" }; private JTextField t = new JTextField(15); private JComboBox c = new JComboBox(); private JButton b = new JButton("Add items"); private int count = 0; http://www.java2s.com/Code/Java/Swing-JFC/Usingdropdownlists.htm Bina Nusantara University
Combobox public void init() { for (int i = 0; i < 4; i++) c.addItem(description[count++]); t.setEditable(false); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (count < description.length) c.addItem(description[count++]);} }); c.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { t.setText("index: " + c.getSelectedIndex() + " " + ((JComboBox) e.getSource()).getSelectedItem()); } }); Bina Nusantara University
combobox public static void main(String[] args) { run(new ComboBoxes(), 200, 125); } public static void run(JApplet applet, int width, int height) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(applet); frame.setSize(width, height); applet.init(); applet.start(); frame.setVisible(true); } } Bina Nusantara Universit
Tugas PR Buat Java application sederhana untuk membuka browser menggunakan Japplet public void actionPerformed(ActionEvent ae){ Button source = (Button)ae.getSource(); String link = "http://www."+source.getLabel()+".com"; try { AppletContext a = getAppletContext(); URL url = new URL(link); a.showDocument(url,"_blank"); } catch (MalformedURLException e){ System.out.println(e.getMessage()); } http://www.roseindia.net/java/example/java/applet/Opening-new-browser-window-from-Applet.shtml
Referensi Introduction to Java. 7ed. 2009. Liang. Chapter 17. Java Applet http://en.wikipedia.org/wiki/Java_applet Applet http://java.sun.com/applets/ Bina Nusantara