10 Aplet
-
Upload
madzani-nusa -
Category
Technology
-
view
948 -
download
3
description
Transcript of 10 Aplet
PUSTAKA APLET
Rossilawati SulaimanJabatan 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.
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:
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 pertamadan 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: