Giáo trình Java cơ bản - Chương 9: Giao diện người dùng

pdf 25 trang huongle 6900
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Java cơ bản - Chương 9: Giao diện người dùng", để 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:

  • pdfgiao_trinh_java_co_ban_chuong_9_giao_dien_nguoi_dung.pdf

Nội dung text: Giáo trình Java cơ bản - Chương 9: Giao diện người dùng

  1. Chương 9 Giao Diện Người Dùng
  2. Chương 9: Giao diện người dùng o Giới thiệu các loại ứng dụng o Tạo các applet o Đối tượng đồ hoạ Graphics.
  3. Hai loại ứng dụng Applet o Applet – Chương trình Java chạy trong một trang web nhờ vào trình duyệt hỗ trợ Java. o Stand-alone Application – Giao diện dòng lệnh (console): Tương tác với người dùng thông qua các dòng ký tự. – Giao diện đồ hoạ (GUI): Tương tác với người dùng bằng nhiều cách khác nhau như hình ảnh, nút nhấn, biểu tượng Việc xử lý ứng dụng dựa trên các sự kiện.
  4. Giới thiệu Applet o Applet thuộc gói ‘java.applet’. Để sử dụng applet phải chèn 2 gói sau: . import java.applet . import java.awt o Bốn phương thức cơ bản của applet: intit(), start(), stop(), destroy(). o Ngoài ra còn có phương thức panit() và repaint(), showStatic(). o Phương thức init() và paint() thường được dùng để khởi tạo và vẽ applet. o Phương thức g.drawstring() chỉ ra vị trí của đoạn văn bản vẽ ra trên màn hình.
  5. Giới thiệu Applet o init() . Được gọi khi khởi tạo applet. . Tải các hình ảnh đồ họa, khởi tạo biến, tạo đối tượng. o start() . Được gọi khi một applet bắt đầu thực thi. . Dùng khởi động lại applet khi nó bị ngừng trước đó. o stop() . Được gọi khi ngừng thực thi applet. . Một applet bị ngừng trước khi nó bị hủy. o destroy() . Được dùng để hủy một applet . Bộ nhớ, thời gian xử lý, không gian đĩa bị thu hồi
  6. Giới thiệu Applet o paint() . Dùng để hiện thị một đường thẳng (line), text hoặc một hình ảnh. . Tham số của phương thức này là đối tượng của lớp Graphichs. o repaint() . Được sử dụng khi cửa sổ cần cập nhật lại . Phương thức này chỉ có một tham số. . Tham số của phương thức này là đối tượng của lớp Graphichs o showStatic() . Dùng để hiện thi thông tin trên thanh trạng thái.
  7. Xây dựng các Applet • Ví dụ 1: Tạo file TestApplet.java import javax.swing.JApplet; import java.awt.Graphics; public class TestApplet extends JApplet { public void paint( Graphics g) { g.drawString(“Hello world!”, 50, 25); } }
  8. Xây dựng các Applet o Cách 1: . Tạo file TestApplet.html (đặt trong thư mục bin có chứa file TestApplet.class) có nội dung như sau: . Mở file này bằng trình duyệt WEB o Cách 2: . Dùng công cụ appletviewer có trong JDK. . Gõ lệnh: appletviewer TestApplet.html. o Cách 3: Thực thi bằng các IDE
  9. Cấu trúc của một Applet đơn giản import java.applet.Applet; import java.awt.Graphics; public class TestApplet extends Applet{ public void init() { } public void start() { } public void stop() { } public void destroy { } public void paint( Graphics g) { } }
  10. Hoạt động của Applet o Vòng đời của một Applet . Nạp một applet: applet được khởi tạo và thực thi . Chuyển hoặc trở về trang Web: Các phương thức stop và start sẽ được gọi . Nạp lại applet: như quá trình nạp applet . Thoát khỏi trình duyệt: phương thức stop và destroy sẽ được gọi.
  11. Lớp Graphics o java.awt.Graphics là lớp cung cấp các phương thức vẽ đồ hoạ cơ bản: . Đường thẳng (Line) . Đường oval (Oval) . Hình chữ nhật (Rectangle) . Đa giác (Polygon) . Văn bản (Text) . Hình ảnh (Image)
  12. Lớp Graphics o Hệ tọa độ:
  13. Lớp Graphics o Vẽ đường thẳng: public void drawLine(int x1, int y1, int x2, int y2); o Vẽ hình chữ nhật: public void drawRect(int x, int y, int width, int height); o Tô một hình chữ nhật: public void fillRect(int x, int y, int width, int height); o Xoá một vùng chữ nhật: public void clearRect(int x, int y, int width, int height); o Vẽ đa giác: public void drawPolygon(int[] x, int[] y, int numPoint); public void drawPolygon(Polygon p);
  14. Ví dụ: import javax.swing.JApplet; import java.awt.Graphics; public class DemoRect extends JApplet{ public void init() { System.out.println("Demonstration of some simple figures"); } public void paint(Graphics g) { g.drawLine(70, 300, 400, 250); g.drawRect(100, 50, 130, 170); g.fillRect(120, 70, 70, 70); int[] x = { 280, 310, 330, 430, 370 }; int[] y = { 200, 140, 170, 70, 90 }; g.drawPolygon(x, y, x.length); } }
  15. Lớp Graphics o Vẽ đường tròn/elip public void drawOval(int x, int y, int width, int height); o Tô đường tròn/elip public void fillOval(int x, int y, int width, int height); o Vẽ cung tròn public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle); o Vẽ xâu kí tự public void drawString(String str, int x, int y); o Vẽ ảnh public void drawImage(Image img, int x, int y, );
  16. Ví dụ: import javax.swing.JApplet; import java.awt.Graphics; public class DemoOval extends JApplet { public void init() { System.out.println("Demonstration of some simple figures"); } public void paint(Graphics g) { int xstart = 70, ystart = 40, size = 100; g.drawOval(xstart, ystart, size, size); g.drawOval(xstart + (size*3)/4, ystart, size, size); g.drawOval(xstart + size/2, ystart + size/2, size, size); g.drawArc(xstart, ystart, 300, 200, 0, -90); g.drawString("good morning !", xstart + 265, ystart + 90); } }
  17. Hiện thị ảnh o import lớp java.awt.Image; o Tạo đối tượng Image: . Image image = getToolkit().getImage("summer.jpg"); o Dùng phương thức drawImage của lớp Graphics để vẽ hình: . g.drawImage(image, 0, 0, this);
  18. Hiện thị ảnh import javax.swing.JApplet; import java.awt.Graphics; import java.awt.Image; public class DemoImage extends JApplet{ public void init() { System.out.println("Demonstration of imaging"); } public void paint(Graphics g) { Image image = getToolkit().getImage("summer.jpg"); g.drawImage(image, 0, 0, this); } }
  19. Các lớp tiện ích khác Lớp Point: biểu diễn điểm trên màn hình Lớp Dimension: biểu diễn kích thước về chiều rộng và chiều cao của một đối tượng Lớp Rectangle: biểu diễn hình chữ nhật Lớp Polygon: biểu diễn đa giác Lớp Color: biểu diễn màu sắc
  20. Các lớp tiện ích khác import javax.swing.JApplet; import java.awt.*; public class DemoColor extends JApplet{ public void paint(Graphics g) { Dimension size = getSize(); g.setColor(Color.orange); g.fillRect(0, 0, size.width, size.height); Color color = new Color(10, 150, 20); g.setColor(color); g.drawString("I am a colorful string", size.width/2 - 50, size.height/2); } }
  21. Xử lý font vẽ import javax.swing.JApplet; import java.awt.*; public class DemoFont extends JApplet{ public void paint(Graphics g) { Font font = new Font("Arial", Font.BOLD, 30); g.setFont(font); g.drawString("I am font Arial, bold, size 30", 50, 50); } }
  22. Chèn âm thanh vào Applet o import lớp java.applet.AudioClip; o Gắn file âm thanh (.au, .wav) vào một đối tượng AudioClip bằng phương thức getAudioClip: AudioClip gong = getAudioClip(getDocumentBase(), "gong.au"); o Dùng phương thức play() của lớp AudioClip để phát âm thanh.
  23. Chèn âm thanh vào Applet import java.applet.AudioClip; import java.applet.Applet; public class SoundApplet extends Applet { public void init() { super.init(); AudioClip gong = getAudioClip(getDocumentBase(), "gong.au"); gong.play(); } }
  24. Khả năng của Applet Applet được đặt tại một Server trên mạng Applet được chuyển tới máy Client theo một trang HTML nào đó Khi một trình duyệt (tương thích với Java) nhận được trang web này, nó sẽ tải mã của Applet và thực thi trên máy client
  25. Giới hạn của Applet Không được nạp các thư viện hay các phương thức sử dụng mã gốc (native code). Không được đọc và ghi lên các tập tin của máy đang chạy chúng. Không được khởi động bất kỳ chương trình nào trên máy đang chạy. Không được đọc bất kỳ tính chất nào của hệ thống.