Applet
Chương trình Java chạy trong một trang web nhờ vào trình duyệt hỗ trợ Java.
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.
25 trang |
Chia sẻ: thuychi16 | Lượt xem: 908 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Java - Chương 9: Giao diện người dùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 9Giao Diện Người DùngChương 9: Giao diện người dùngGiới thiệu các loại ứng dụngTạo các appletĐối tượng đồ hoạ Graphics.Hai loại ứng dụng AppletAppletChương trình Java chạy trong một trang web nhờ vào trình duyệt hỗ trợ Java.Stand-alone ApplicationGiao 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ượngViệc xử lý ứng dụng dựa trên các sự kiện.Giới thiệu AppletApplet thuộc gói ‘java.applet’. Để sử dụng applet phải chèn 2 gói sau:import java.appletimport java.awtBốn phương thức cơ bản của applet: intit(), start(), stop(), destroy().Ngoài ra còn có phương thức panit() và repaint(), showStatic().Phương thức init() và paint() thường được dùng để khởi tạo và vẽ applet.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.Giới thiệu Appletinit()Đượ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.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 đó.stop()Được gọi khi ngừng thực thi applet.Một applet bị ngừng trước khi nó bị hủy.destroy()Được dùng để hủy một appletBộ nhớ, thời gian xử lý, không gian đĩa bị thu hồiGiới thiệu Appletpaint()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.repaint()Được sử dụng khi cửa sổ cần cập nhật lạiPhươ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 GraphichsshowStatic()Dùng để hiện thi thông tin trên thanh trạng thái.Xây dựng các AppletVí dụ 1: Tạo file TestApplet.javaimport javax.swing.JApplet;import java.awt.Graphics;public class TestApplet extends JApplet{ public void paint( Graphics g) { g.drawString(“Hello world!”, 50, 25); }}Xây dựng các AppletCá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 WEBCách 2: Dùng công cụ appletviewer có trong JDK.Gõ lệnh: appletviewer TestApplet.html.Cách 3: Thực thi bằng các IDECấu trúc của một Applet đơn giảnimport 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) {}}Hoạt động của AppletVòng đời của một AppletNạp một applet: applet được khởi tạo và thực thiChuyển hoặc trở về trang Web: Các phương thức stop và start sẽ được gọiNạp lại applet: như quá trình nạp appletThoát khỏi trình duyệt: phương thức stop và destroy sẽ được gọi.Lớp Graphicsjava.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)Lớp GraphicsHệ tọa độ:Lớp GraphicsVẽ đường thẳng:public void drawLine(int x1, int y1, int x2, int y2);Vẽ hình chữ nhật: public void drawRect(int x, int y, int width, int height);Tô một hình chữ nhật:public void fillRect(int x, int y, int width, int height);Xoá một vùng chữ nhật:public void clearRect(int x, int y, int width, int height);Vẽ đa giác:public void drawPolygon(int[] x, int[] y, int numPoint);public void drawPolygon(Polygon p);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); }}Lớp GraphicsVẽ đường tròn/elippublic void drawOval(int x, int y, int width, int height);Tô đường tròn/elippublic void fillOval(int x, int y, int width, int height);Vẽ cung trònpublic void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle);Vẽ xâu kí tựpublic void drawString(String str, int x, int y);Vẽ ảnhpublic void drawImage(Image img, int x, int y,...);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); }}Hiện thị ảnhimport lớp java.awt.Image;Tạo đối tượng Image:Image image = getToolkit().getImage("summer.jpg");Dùng phương thức drawImage của lớp Graphics để vẽ hình:g.drawImage(image, 0, 0, this);Hiện thị ảnhimport 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); }}Các lớp tiện ích khácCác lớp tiện ích khácimport 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); }}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); }}Chèn âm thanh vào Appletimport lớp java.applet.AudioClip;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"); Dùng phương thức play() của lớp AudioClip để phát âm thanh.Chèn âm thanh vào Appletimport 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(); } } Khả năng của AppletGiới hạn của Applet