Bài giảng Lập trình mạng - Chương 6: Lập trình Web chạy trên Client dùng Applet Java

pdf 21 trang ngocly 830
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình mạng - Chương 6: Lập trình Web chạy trên Client dùng Applet Java", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_lap_trinh_mang_chuong_6_lap_trinh_web_chay_tren_cl.pdf

Nội dung text: Bài giảng Lập trình mạng - Chương 6: Lập trình Web chạy trên Client dùng Applet Java

  1. Môn học : Lập trình mạng Chương 6 LẬP TRÌNH WEB CHẠY TRÊN CLIENT DÙNG APPLET JAVA 6.1 Giới thiệu Applet Java 6.2 Qui trình xây dựng Applet Java dùng JBuilder 6.3 Qui trình xây dựng Website dùng Apllet Java bằng InterDev Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 220
  2. 6.1 Giới thiệu Applet Java ƒ Chúng ta ₫ã quen với các ₫iều khiển (control) ₫ược dùng trong các môi trường thiết kế trực quan giao diện phần mềm như TextBox, Button, ListBox, ComboBox, ƒ Microsoft ₫ưa ra công nghệ ActiveX Control ₫ể giúp người lập trình tự tạo thêm các ₫iều khiển theo nhu cầu riêng của mình. ActiveX là linh kiện phần mềm cấp hệ thống, nghĩa là mỗi khi nó ₫ược ₫ăng ký vào Windows thì bất kỳứng dụng nào cũng có thể dùng nó, ứng dụng ₫ócóthể là ứng dụng Windows truyền thống hay 1 trang Web. Cách thức sữ dụng 1 ActiveX giống y như cách dùng ₫iều khiển có sẵn. ƒ Xây dựng ActiveX gồm 2 bước chính : ₫ịnh nghĩa giao tiếp sử dụng và hiện thực chi tiết bên trong. ƒ Giao tiếp sử dụng ActiveX gồm 4 loại chân (pin, entry) : thuộc tính, tác vụ, sự kiện nhập, sự kiện xuất. ƒ Trong phần này, chúng ta sẽ giới thiệu qui trình ₫iển hình ₫ể xây dựng 1 Applet bằng môi trường JBuilder Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 221
  3. 6.2 Qui trình xây dựng Applet bằng JBuilder 1. Chạy JBuilder (hoặc bằng icon shortcut trên desktop hoặc bằng menu Start.Programs .), cửa sổ ₫ầu tiên có dạng : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 222
  4. Qui trình xây dựng Applet bằng JBuilder 2. Nếu thấy JBuilder hiển thị Project nào ₫ó (của lần cuối cùng trước ₫ó), chọn menu File.Close Projects ₫ể hiển thị cửa sổ Close Projects rồ i chọn button All và OK ₫ể ₫óng các Project lại. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 223
  5. Qui trình xây dựng Applet bằng JBuilder 3. Tạo Project mới bằng cách vào menu File.New Project. Khi cửa sổ Step 1 dưới ₫ây hiển thị, nhập tên Project là AppletWinMine, chọn vị trí thư mục rồi ấn button Next. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 224
  6. Qui trình xây dựng Applet bằng JBuilder 4. Khi cửa sổ Step 2 dưới ₫ây hiển thị, hiệu chỉnh các thông số cần thiết (nên dùng giá trị mặc ₫ịnh) r ồi ấn button Next. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 225
  7. Qui trình xây dựng Applet bằng JBuilder 5. Khi cửa sổ Step 3 dưới ₫ây hiển thị, hiệu chỉnh các thông số cần thiết (nên hiệu chỉnh nội dung của mục Encoding thành UTF8 ₫ể hỗ trợ tốt các chuỗi tiếng Việt Unicode trong các phần tử giao diện) rồi ấn button Finish ₫ể hoàn tất việc thiết lập các tham số của Project. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 226
  8. Qui trình xây dựng Applet bằng JBuilder 6. Chọn menu File.New ₫ể mở lại của sổ Object Gallery, chọn mục Web, chọn icon Applet và OK ₫ể tạo 1 Applet Java mới. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 227
  9. Qui trình xây dựng Applet bằng JBuilder 7. Khi cửa sổ Step 1 dưới ₫ây hiển thị, nhập tên Applet là AppletWinMine rồi chọn button Finish ₫ể hoàn thành qui trình Wizard tạo Applet với các tham số mặc ₫ịnh còn lại. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 228
  10. Qui trình xây dựng Applet bằng JBuilder 8. Cửa sổ soạn code cho Applet ban ₫ầu có dạng bên. Hiệ u chỉnh lại phát biểu class, thân hàm jbinit() và viết thêm 1 số hàm xử lý sự kiện và hàm dịch vụ cho trò chơi dò mìn như các slide kế. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 229
  11. Qui trình xây dựng Applet bằng JBuilder import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; public class AppWinMine extends Applet implements MouseListener { private boolean isStandalone = false; private final int WM_NULL = 9; private final int WM_MINI = 10; private final int WM_MINA = 11; private int odado; private Image wm_null, wm_mini, wm_mina,wm_buttonI,wm_buttonA; private Image wm_imglist[] = new Image[12]; private boolean data_tbl[][]= new boolean[8][8]; private boolean stat_tbl[][] = new boolean[8][8]; private int disp_tbl[][] = new int[8][8]; private boolean dangchoi; private int xbt=20, ybt=190, xmsg=20, ymsg=170; private String mesg; private Image jbt; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 230
  12. Qui trình xây dựng Applet bằng JBuilder //Component initialization private void jbInit() throws Exception { wm_imglist[0] = getImage(getCodeBase(), "wm_nul1.gif"); wm_imglist[1] = getImage(getCodeBase(), "wm_1.gif"); wm_imglist[2] = getImage(getCodeBase(), "wm_2.gif"); wm_imglist[3] = getImage(getCodeBase(), "wm_3.gif"); wm_imglist[4] = getImage(getCodeBase(), "wm_4.gif"); wm_imglist[5] = getImage(getCodeBase(), "wm_5.gif"); wm_imglist[6] = getImage(getCodeBase(), "wm_6.gif"); wm_imglist[7] = getImage(getCodeBase(), "wm_7.gif"); wm_imglist[8] = getImage(getCodeBase(), "wm_8.gif"); wm_imglist[WM_NULL] = getImage(getCodeBase(), "wm_nul.gif"); wm_imglist[WM_MINI] = getImage(getCodeBase(), "wm_mini.gif"); wm_imglist[WM_MINA] = getImage(getCodeBase(), "wm_mina.gif"); wm_buttonI = getImage(getCodeBase(), "wm_buttonI.gif"); wm_buttonA = getImage(getCodeBase(), "wm_buttonA.gif"); addMouseListener(this); wm_init(); } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 231
  13. Qui trình xây dựng Applet bằng JBuilder private void wm_init() { int h,c,mcnt; odado = 0; dangchoi = true; jbt = wm_buttonI; mesg = "Hay do tung o min"; // Tao cac bang va khoi dong trang thai for (h=0;h<8;h++) for (c=0;c<8;c++) { disp_tbl[h][c] = WM_NULL; data_tbl[h][c] = false; stat_tbl[h][c] = false; } // An button choi tiep //jbtStart.disable(); // Xep ngau nhien 10 trai min mcnt = 0; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 232
  14. Qui trình xây dựng Applet bằng JBuilder while (mcnt <10) { h = (int)Math.round(Math.random()*7); c = (int)Math.round(Math.random()*7); if (data_tbl[h][c]==false) { data_tbl[h][c]= true; mcnt++; } } } public void paint(Graphics g) { int h,c; for (h= 0; h<8; h++) for (c=0;c<8;c++) g.drawImage(wm_imglist[disp_tbl[h][c]], c*17, h*17, this); g.drawString(mesg,xmsg,ymsg); g.drawImage(jbt,xbt,ybt,this); } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 233
  15. Qui trình xây dựng Applet bằng JBuilder // Tinh so min xung quanh vi tri (h,c) private int winecnt (int h, int c) { int cnt=0; if (h-1>=0 && c-1>=0 && data_tbl[h-1][c-1]) cnt++; if (h-1>=0 && data_tbl[h-1][c]) cnt++; if (h-1>=0 && c+1 =0 && data_tbl[h][c-1]) cnt++; if (c+1 =0 && data_tbl[h+1][c-1]) cnt++; if (h+1 =0 && c-1>=0 && stat_tbl[h-1][c-1]==false) domin(h-1,c-1); if (h-1>=0 && stat_tbl[h-1][c]==false) domin(h-1,c); if (h-1>=0 && c+1 =0 && stat_tbl[h][c-1]==false) domin(h,c-1); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 234
  16. Qui trình xây dựng Applet bằng JBuilder if (c+1 =0 && stat_tbl[h+1][c-1]==false) domin(h+1,c-1); if (h+1<8 && stat_tbl[h+1][c]==false) domin(h+1,c); if (h+1<8 && c+1<8 && stat_tbl[h+1][c+1]==false) domin(h+1,c+1); } // Do min o vi tri h,c private int domin(int h,int c){ int i,j,cnt; if (stat_tbl[h][c]) return 0; if (data_tbl[h][c]) { // Dap trung min for (i=0;i<8;i++) for (j=0;j<8;j++) if (data_tbl[i][j]) disp_tbl[i][j] = WM_MINI; disp_tbl[h][c] = WM_MINA; mesg ="Ba da chet"; //jbtStart.enable(); dangchoi = false; } else { // do trung cho khong co min Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 235
  17. Qui trình xây dựng Applet bằng JBuilder cnt = winecnt(h,c); stat_tbl[h][c] = true; disp_tbl[h][c] = cnt; odado++; if (cnt==0) doquanh(h,c); } if (odado ==54) { mesg = "Ba da thang"; //jbtStart.enable(); dangchoi = false; } return 1; } public void mouseReleased(MouseEvent e){ int x = e.getX(); int y = e.getY(); if (x > 8*17 || y > 8*17) if (xbt<=x && x <=xbt+60 && ybt<=y && y<=y+20) { jbt = wm_buttonI; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 236
  18. Qui trình xây dựng Applet bằng JBuilder if (!dangchoi){ wm_init(); } repaint(); } } public void mousePressed(MouseEvent e) { int h,c; int x = e.getX(), y = e.getY(); if (x > 8*17 || y > 8*17) { if (xbt<=x && x <=xbt+60 && ybt<=y && y<=y+20) jbt = wm_buttonA; } else { // an chout vao ban min if (!dangchoi) return; h = y/17; c = x/17; domin(h,c); } repaint(); } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 237
  19. Qui trình xây dựng Applet bằng JBuilder public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } // kết thúc code Java ƒ Sau khi soạn xong code, thử dịch và chạy Applet. ƒ Mặc ₫ịnh JBuilder có tạo sẵn 1 trang Web chứa Applet nhờ tag lệnh . Nội dung của trang Web ₫ược liệt kê trong slide kế. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 238
  20. Qui trình xây dựng Applet bằng JBuilder HTML Test Page appletwinmine.AppletWinMine will appear below in a Java enabled browser. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 239
  21. Qui trình xây dựng Applet bằng JBuilder Lưu ý tham số thiết yếu của tag là : - codebase : miêu tả thư mục tham khảo - code : miêu tả ₫ường dẫn tương ₫ối của file applet so với thư mục tham khảo. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 6 : Lập trình Web chạy trên Client dùng Applet Java Trường ĐH Bách Khoa Tp.HCM Slide 240