You are on page 1of 39

PUSTAKA APLET

Rossilawati Sulaiman
Jabatan Sains Komputer
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
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.
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
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).
Kelakuan lalai bagi Aplet
Kelas Applet / JApplet sebenarnya sudah
menakrifkan perlakuan lalai objeknya.

Applet
JApplet
javax.swing
java.applet
ApletLalai
Object
java.lang
.
.
.
pakej lalai
Pakej lalai
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 {
}
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
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
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
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
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
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
javac AppletLalai.java
ApletLalai.java
ApletLalai.class
ApletSaya.html
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.
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
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
Output:

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()
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.
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.
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.

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.

Metod dalam kelas JAplet
paint()
Mesej paint() dihantar kepada aplet
untuk memintanya memapar dirinya
pada skrin

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

pengawalan
aplet
aplet
musnah
init()
start() stop()
start()
destroy()
aplet
mula
aplet
henti
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
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
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.

Setelah memulakan aplet:
Paparan pada aplet
Paparan pada Ms Dos
Jika kita aktifkan tetingkap lain, tindankannya
dengan tetingkap appletviewer dan
kemudian aktifkan semula tetingkap
appletviewer:
Tindankan tetingkap
Applet Viewer
Aktifkan semula tetingkap appletviewer:
Aktifkan semula
tetingkap Applet Viewer
Bila diaktifkan, Aplet
memaparkan dirinya
sekali lagi
Jika tetingkap Applet Viewer di minimize,
metod stop() akan dipanggil :
Maximize kan tetingkap Appletviewer sekali
lagi:
Metod start() dan metod
paint() dipanggil sekali lagi
Jika kita hentikan perlaksanaan appletviewer,
aplet akan dimusnahkan:
Metod destroy() dipanggil
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()
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 pertama
dan nombor kedua
Parse nilai String
kepada double
Operasi penambahan
//sambungan..

public void paint(Graphics g){
g.drawRect(15,10,270,20);
g.drawString("Jumlah hasil tambah: "+jumlah,25,25);
}
}
Output:
Metod init()
Metod ini mengisytiharkan pemboleh
ubah noPertama, noKedua, num1
dan num2
Metod ini juga mengambil input dari
pengguna menggunakan
JOptionPane()
Metod paint()
Metod ini melukis segiempat dan
kemudiannya melukis String seperti di
bawah:

You might also like