L P TRÌNH GIAO DIN TRÊN JAVA
6.4.2 Sd ng applet
Applet không th ch y nh m t ng d ng Java đ c l p (nó không có hàm main), mà nó ch ch y
đ c khi đ c nhúng trong m t trang HTML (đuôi .htm, .html) và ch y b ng m t trình duy t web thông th ng.
Các b c xây d ng và s d ng m t applet bao g m:
• Biên d ch mã ngu n thành l p .class • Nhúng mã .class c a applet vào trang html.
nhúng m t applet vào m t trang html, ta dùng th (tag) <Applet> nh sau: <APPLET CODE = “Tên_file_applet.class”
WIDTH = “Chi u_r ng” HEIGHT = “Chi u_cao”> </APPLET>
Trong đó:
• Tên applet là tên file mã ngu n đã biên d ch thành file ch y có đuôi .class c a Java. • Chi u r ng và chi u cao là kích th c c a vùng trên trang html mà applet s đ c đ t vào. Ví d , trong trang myHtml.htm có ch a n i dung nh sau:
<HTML> <HEAD>
<TITLE> A simple applet </TITLE> </HEAD>
<BODY>
This is the output of applet:
<APPLET CODE = “SimpleApplet.class” WIDTH=200 HEIGHT=20> </APPLET>
</BODY> </HTML>
s nhúng applet đã đ c đnh ngh a trong ch ng trình 6.17 vào m t vùng có kích th c 200*20 trong trang myHtml. Bây gi , ta có th ki m nghi m ch ng trình applet c a mình b ng cách m trang myHtml trên các trình duy t thông th ng.
Ch ng trình 6.18 cài đ t m t applet có ch c n ng t ng t nh ch ng trình 6.7, th c hi n các thao tác tính toán c b n trên hai s . Ngo i tr vi c đây là m t applet, nên có th ch y trên m t trang html. Ch ng trình 6.18 package vidu.chuong6; import java.awt.*; import java.awt.event.*; import java.applet.*;
public class AppletDemo extends Applet implements ActionListener{ Label lbl1, lbl2, lblKq;
TextField txt1, txt2;
Button btnCong, btnTru, btnNhan, btnChia, btnThoat;
public void init(){
this.setLayout(new GridLayout(6,2)); //Ch đ hi n th 6 dòng, 2 c t lbl1 = new Label(“So thu nhat:”); // Nhãn s th nh t
txt1 = new TextField(); // Ô v n b n s th nh t this.add(txt1);
lbl2 = new Label(“So thu hai:”); // Nhãn s th hai this.add(lbl2);
txt2 = new TextField(); // Ô v n b n s th hai this.add(txt2);
lblKq = new Label(); // Nhãn k t qu this.add(lblKq);
this.add(new Label());
// Các nút nh n
btnCong = new Button(“Cong”); // Nút c ng btnCong.addActionListener(this); // B t s ki n this.add(btnCong);
btnTru = new Button(“Tru”); // Nút tr btnTru.addActionListener(this);
this.add(btnTru);
btnNhan = new Button(“Nhan”); // Nút nhân btnNhan.addActionListener(this);
this.add(btnNhan);
btnChia = new Button(“Chia”); // Nút chia btnChia.addActionListener(this);
this.add(btnChia);
btnThoat = new Button(“Thoat”); // Nút thoát btnThoat.addActionListener(this);
this.add(btnThoat); }
/* Ph ng th c x lí s ki n nút đ c nh n */ public void actionPerformed(ActionEvent ae){
float x = Float.parseFloat(txt1.getText()); float y = Float.parseFloat(txt2.getText()); float kq = 0;
if(ae.getSource() == btnCong) // C ng hai s kq = x + y;
if(ae.getSource() == btnTru) // Tr hai s kq = x - y;
if(ae.getSource() == btnNhan) // Nhan hai s kq = x*y;
if(ae.getSource() == btnChia)&&(y != 0) // Chia hai s kq = x/y;
if(ae.getSource() == btnThoat) // Thoát kh i ch ng trình System.exit(0);
// Thay đ i n i dung k t qu
lblKq.setText(“Ket qua la: ” + String.valueOf(kq)); repaint(); // V l i các đ i t ng }
}
Khi nhúng applet này vào m t trang html b t kì, ta có th ki m tra th y r ng nó có ch c n ng t ng t nh ng d ng 6.7.
L u ý, s khác nhau gi a m t application và m t applet:
• Application là m t ng d ng Java đ c l p, nó có th ch y đ c l p trên máy o Java. Trong khi đó, applet ch ch y đ c khi nhúng trong m t trang html, ch y nh vào các trình duy t web có h tr Java.
• Application ch y d a vào hàm main(). Trong khi đó, applet không có hàm main().
• hi n th các thông báo, application dùng System.out.println(). Trong khi đó, applet dùng ph ng th c drawString() c a l p Graphics.