10 Aplet

39
PUSTAKA APLET Rossilawati Sulaiman Jabatan Sains Komputer

description

 

Transcript of 10 Aplet

Page 1: 10   Aplet

PUSTAKA APLET

Rossilawati SulaimanJabatan Sains Komputer

Page 2: 10   Aplet

APLET Ingat kembali, aturcara Java terbahagi

kepada 2 bentuk, Aplikasi dan Aplet Ingat kembali, untuk melaksanakan

aturcara berbentuk aplikasi, kita perlu menggunakan pentafsir Java, misalnya

> java Aplikasi

Page 3: 10   Aplet

APLET Aplet tidak mempunyai metod main() Aplet tidak perlukan pentafsir Java

untuk dilarikan Aplet dilaksanakan menerusi atur

cara yang menyokong perlaksanaan aplet seperti appletviewer yang disediakan dalam JDK atau sesetengah pelayar web.

Page 4: 10   Aplet

MEMBINA APLET Aplet merupakan suatu objek Kelas Applet.

Kelas Applet terdapat dalam pakej java.applet.

Bermula daripada Java 1.2, aplet boleh juga diwujudkan sebagai suatu objek JApplet. JApplet adalah suatu kelas dalam pakej javax.swing.

Kelas JApplet juga merupakan suatu subkelas di bawah kelas Applet

Page 5: 10   Aplet

Gambaran kelas Applet dan

JApplet

Object

Component

Container

Applet

Panel

JApplet

java.lang

java.awt

javax.swing

java.applet

Apabila menulis aplet, pengaturcara tidak perlu mencipta objek Applet / JApplet. Ini akan dilakukan oleh atur cara yang melaksanakannya (misalnya, pelayar web).

Page 6: 10   Aplet

Kelakuan lalai bagi Aplet Kelas Applet / JApplet sebenarnya

sudah menakrifkan perlakuan lalai objeknya.

Pakej lalai

Page 7: 10   Aplet

Kelas ApletLalai diisytiharkan sebagai public untuk membolehkan ia diguna semula di luar pakejnya. Dengan itu, atur cara yang melaksanakannya boleh mencapai kelas ini.

Kelakuan lalai bagi Aplet Contoh berikut adalah aturcara aplet yang

mempunyai kelakuan lalai

import javax.swing.*;

public class ApletLalai extends JApplet {

}

Page 8: 10   Aplet

Badan Kelas ApletLalai adalah kosong.

Kelas itu tidak membatalkan mana-mana perlakuan yang diwarisinya daripada JApplet. Perlakuan objek ApletLalai adalah setara dengan perlakuan objek JApplet.

Kelakuan lalai bagi Aplet

Page 9: 10   Aplet

Tidak terdapat takrifan metod utama seperti metod main() yang ditakrifkan dalam aplikasi Java.

Metod utama ini dikapsulkan; ia tidak perlu diketahui oleh pengaturcara.

Kelakuan lalai bagi Aplet

Page 10: 10   Aplet

Pangkal nama fail yang menyimpan takrifan suatu kelas public hendaklah sama dengan nama kelas tersebut.

Dengan itu, kelas ApletLalai di atas perlu disimpan dalam fail "ApletLalai.java". Dengan adanya kekangan ini, setiap fail ".java" tidak boleh mengandungi lebih daripada satu takrifan kelas public.

Kelakuan lalai bagi Aplet

Page 11: 10   Aplet

Untuk melaksanakan atur cara di atas, ia perlu dikompil dahulu. > javac ApletLalai.java

Seperti biasa, jika tiada ralat pengkompil akan menjana fail "ApletLalai.class".

Untuk melaksanakan atur cara ini dalam pelayar web atau appletviewer, kita perlu tuliskan suatu dokumen HTML yang mengandungi arahan untuk memuatkan fail ".class" tadi

Melaksanakan fail Aplet

Page 12: 10   Aplet

Andaikan dokumen HTML ini diberi nama "ApletSaya.html".

Melaksanakan fail Aplet

<HTML>

<APPLET CODE="ApletLalai.class" WIDTH=300 HEIGHT=300>

</APPLET>

</HTML>

Contoh: Fail .class yang dijana selepas dikompil

Page 13: 10   Aplet

Melaksanakan fail Aplet Untuk memapar dokumen tadi

dalam pelayar web, buka dokumen tersebut seperti biasa.

Untuk memapar dokumen dalam appletviewer, gunakan arahan berikut:

appletviewer ApletSaya.html

Page 14: 10   Aplet

javac AppletLalai.java

ApletLalai.java ApletLalai.class

ApletSaya.html

Page 15: 10   Aplet

Mengubahsuai Kelakuan Lalai Aplet

Aplet tadi tidak melakukan sebarang kerja yang berguna.

Lazimnya, pengaturcara akan mengubahsuai perlakuan aplet (menggunakan fitur pembatalan metod) supaya ia memenuhi keperluan atur cara.

Page 16: 10   Aplet

Katakan kita inginkan suatu aplet yang memaparkan suatu segiempat berwarna biru.

Suatu objek Applet / JApplet akan memaparkan dirinya apabila ia menerima mesej paint().

Dengan itu, metod paint() perlu dibatalkan dengan menakrifkan semula metod tersebut.

Mengubahsuai Kelakuan Lalai Aplet

Page 17: 10   Aplet

Perhatikan aturcara berikut :

Mengubahsuai Kelakuan Lalai Aplet

import javax.swing.*;import java.awt.*;

public class ApletSaya extends JApplet {

public void paint(Graphics g) {

Graphics2D g2d = (Graphics2D) g;g2d.drawString("Ini kotak biru", 0, 15);g2d.setPaint(Color.blue);g2d.fillRect(20, 20, 30, 50);

}}

Membatalkan metod paint()

dalam kelas JAplet

Page 18: 10   Aplet

Output:

Page 19: 10   Aplet

Metod dalam kelas JAplet

Aplet dibangunkan dengan cara mengubahsuai perlakuan aplet yang telah sedia ada

Oleh itu, kita perlu tahu metod objek aplet serta tujuannya supaya kita tahu metod manakah yang boleh dibatalkan.

Antara beberapa metod kelas JApplet yang penting ialah: init(), start(), stop(), destroy(), dan paint()

Page 20: 10   Aplet

Metod dalam kelas JAplet init()

mesej init() dihantar kepada aplet sekali iaitu apabila aplet dicipta.

Aplet biasanya akan melaksanakan pengawalan (initialization) yang perlu dilakukan sekali sahaja iaitu pada masa ia dicipta.

Page 21: 10   Aplet

Metod dalam kelas JAplet start()

Mesej start() dihantar kepada aplet apabila ia dimulakan.

Metod start() seharusnya mengandungi kod yang perlu dilaksanakan setiap kali aplet dimulakan.

Suatu aplet boleh menerima mesej ini lebih daripada satu kali sepanjang hayatnya.

Contohnya, bagi aplet yang mengandungi animasi, metod start() mengandungi kod untuk memulakan semula bebenang (threads) tertentu.

Page 22: 10   Aplet

Metod dalam kelas JAplet stop()

Mesej stop() dihantar kepada aplet sebelum ia dihentikan perlaksanaannya. Metod stop() seharusnya mengandungi kod yang perlu dilaksanakan sebelum aplet dihentikan.

Seperti mesej start(), suatu aplet mungkin menerima mesej ini lebih daripada satu kali sepanjang hayatnya.

Sebagai contoh, bagi aplet yang mengandungi animasi, biasanya metod stop() akan menggantung perlaksanaan bebenangnya.

Page 23: 10   Aplet

Metod dalam kelas JAplet destroy()

Perlu difahami bahawa aplet masih "hidup" setelah melaksanakan metod stop().

Mesej destroy() dihantar kepada aplet sebelum ia dimusnahkan. Metod destroy() seharusnya mengandungi tindakan akhir yang perlu dilakukan oleh aplet sebelum ia dimusnahkan.

Contoh tindakan yang dilakukan dalam metod destroy(): menghentikan perlaksanaan bebenang, menutup sebarang rangkaian yang terbuka dan sebagainya.

Page 24: 10   Aplet

Metod dalam kelas JAplet paint()

Mesej paint() dihantar kepada aplet untuk memintanya memapar dirinya pada skrin

Page 25: 10   Aplet

Aplet berikut mendemonstrasikan penghantaran mesej di atas berdasarkan kepada peralihan keadaan aplet berikut:

Page 26: 10   Aplet

import java.awt.*;import javax.swing.*;

public class ApletSaya extends JApplet {private int bilKitar;private int bilLukis;

public void init() {System.out.println("init: Aplet melakukan

pengawalan");bilKitar = 0;

}

public void start() {bilKitar++;bilLukis=0;System.out.println("start: Aplet telah dimulakan (kitar

" +bilKitar+")");

}

init() : Aplet melakukan pengawalan

start(): Aplet dimulakan

Page 27: 10   Aplet

public void stop() {System.out.println("stop: Aplet akan dihentikan (kitar "+bilKitar+")");

}

public void destroy() {System.out.println("destroy: Aplet akan

dimusnahkan");System.out.println("Bilangan kitar: "+bilKitar);

}

public void paint(Graphics g) {bilLukis++;System.out.println("paint: Aplet memapar dirinya (kali ke-"+bilLukis+" dalam kitar "+bilKitar+")");Graphics2D g2d = (Graphics2D) g;g2d.drawString("Ini kotak biru", 0, 15);g2d.setPaint(Color.blue);g2d.fillRect(20, 20, 30, 50);

}}

Aplet dihentikan

Aplet dimusnahkan

Aplet memaparkan dirinya

Page 28: 10   Aplet

Dalam kod tersebut, output yang dijanakan oleh System.out.println() tidak dipaparkan pada tingkap aplet

Sebaliknya, ia dipaparkan pada konsol Java (jika dilaksanakan menerusi pelayar web) atau pada tingkap MSDOS (jika dilaksanakan menerusi appletviewer).

Andaikan aplet di atas dilaksanakan menggunakan appletviewer.

Page 29: 10   Aplet

Setelah memulakan aplet:

Paparan pada aplet

Paparan pada Ms Dos

Page 30: 10   Aplet

Jika kita aktifkan tetingkap lain, tindankannya dengan tetingkap appletviewer dan kemudian aktifkan semula tetingkap appletviewer:

Tindankan tetingkap Applet Viewer

Page 31: 10   Aplet

Aktifkan semula tetingkap appletviewer:

Aktifkan semula tetingkap Applet Viewer

Bila diaktifkan, Aplet memaparkan dirinya sekali lagi

Page 32: 10   Aplet

Jika tetingkap Applet Viewer di minimize, metod stop() akan dipanggil :

Page 33: 10   Aplet

Maximize kan tetingkap Appletviewer sekali lagi:

Metod start() dan metod paint() dipanggil sekali lagi

Page 34: 10   Aplet

Jika kita hentikan perlaksanaan appletviewer, aplet akan dimusnahkan:

Metod destroy() dipanggil

Page 35: 10   Aplet

Contoh Aplet: penambahan nombor

Contoh seterusnya ialah aturcara aplet yang menambahkan dua nombor perpuluhan

Hasil tambah dua nombor tadi akan dipaparkan pada aplet

Perhatikan penggunaan metod init() dan metod paint()

Page 36: 10   Aplet

import java.awt.*;import javax.swing.*;

public class ApletTambah extends JApplet{ double jumlah; public void init(){

String noPertama, noKedua;double num1,num2;

noPertama = JOptionPane.showInputDialog("Masukkan nombor perpuluhan pertama");

noKedua = JOptionPane.showInputDialog("Masukkan nombor perpuluhan kedua");

num1 = Double.parseDouble(noPertama);num2 = Double.parseDouble(noKedua);

jumlah = num1 +num2; }

Input nombor pertamadan nombor kedua

Parse nilai String kepada double

Operasi penambahan

Page 37: 10   Aplet

//sambungan..

public void paint(Graphics g){g.drawRect(15,10,270,20);g.drawString("Jumlah hasil tambah:

"+jumlah,25,25);}

}

Output:

Page 38: 10   Aplet

Metod init() Metod ini mengisytiharkan

pemboleh ubah noPertama, noKedua, num1 dan num2

Metod ini juga mengambil input dari pengguna menggunakan JOptionPane()

Page 39: 10   Aplet

Metod paint() Metod ini melukis segiempat dan

kemudiannya melukis String seperti di bawah: