intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình Java căn bản - Chương 7 Lập trình đồ họa

Chia sẻ: Nguyễn Doãn Mạnh Đoàn | Ngày: | Loại File: PDF | Số trang:15

86
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đến cuối chương trình bạn có thể: hiểu biết về các lớp, biết cách vẽ hình ảnh của GUI với đối tượng thuộc lớp . Chúc các bạn thành công.

Chủ đề:
Lưu

Nội dung Text: Lập trình Java căn bản - Chương 7 Lập trình đồ họa

  1. M c tiêu Đ n cu i chương b n có th •Hi u bi t v l p Font, l p FontMetrics Chương 7- L p trình ñ h a •Hi u bi t v l p Color. •Bi t cách v hình nh trên GUI. v i ñ i tư ng thu c l p Graphics, Graphics2D 1 2 1
  2. N i dung 7.1- Ôn t p 7.1- Ôn t p • Event : Tín hi u nh n bi t có s thay ñ i 7.2- Các v n ñ cơ b n v v . tr ng thái. 7.3- Đi u khi n m u s c. • Ngu n phát sinh event: H th ng, user, 7.4- Đi u khi n Font. event khác. 7.5- Đ h a v i l p Graphics. 7.6- Paint mode. • Có 2 m c s ki n : low-level events 7.7- Đ h a v i l p Graphics2D. (không do user kích h at), semantic-level 7.8- File nh. events (event do user kích ho t) 7.9- Tóm t t. • Có 4 lo i semantic-level events: trong gói 7.10- Chương trình v b ng chu t. java.awt.event: ActionEvent, 3 AdjustmentEvent, ItemEvent, TextEvent. 4 2
  3. 7.2- Các v n ñ cơ b n v v Ôn t p... • Đi u khi n m u s c. • Event Source: Đ i tư ng kích ho t 1 s ki n. • Ch n Font • Event là ñ i tư ng mô t có s thay ñ i tr ng thái • Thao tác v : V chu i, v hình, tô m u. c a ñ i tư ng ngu n. • Event handler: Các method x lý tình hu ng d a • Ch ñ ñ h a Graphic mode. trên lo i Event object. • Khi 1 event x y ra, event source s g i các method • Xu t file nh. tương ng ñư c ñ nh nghĩa trong ñ i tư ng listener k t h p v i event source. • Qu n lý 1 event trong ng d ng là t o 1 ñ i tư ng listener phù h p v i event source, vi t code event handler, k t h p event source v i listener. 5 6 3
  4. 7.3- Đi u khi n m u s c Đi u khi n m u s c (tt) • 1 m u t ch n ñư c n ñ nh b ng b 3 (Red,Green,Blue) • T i 1 th i ñi m. có 1 m u n n (background color, m c thông qua constructor c a l p Color : ñ nh là white) hi n hành và 1 m u v hi n hành m c Color class ñ nh là black. public Color(float RedVal, float GreenVal, float BlueVal) • Thao tác v i m u n n và m u v c a Frame: public Color(int RedVal, int GreenVal, int BlueVal) // 0..255 setBackground(aColor); getBackground(); Truy xu t tr 1 m u ho c thành ph n c a 1 m u setForeground(aColor); getForeground(); getRed(), getGreen(), getBlue(), getRGB() • n ñ nh m u v g.setColor (aColor); // g:graphic object • Thí d v n ñ nh m u hi n hành: Color c = new Color( 255,130,60); • Ch ñ nh m u b ng các h ng m u s c: Khai báo s n g.setColor(c) ; // g: graphic object trong l p Color Color.black , … Các h ng khác : … white, gray , lightGray, darkGray, red, pink, orange, g.setColor(new Color(100,0,200)); yellow , green, magenta, cyan , blue. 7 8 4
  5. 7.4- Đi u khi n Font Font.... • Font = Ki u ch , mô t nét v • Có th l y t p font trong máy b ng 1 ñ i tư ng thu c (glyphs) c a ký t . l p GraphicEnvironment. • Có ký t 1 nét (a), 2 nét (á) • L y fonts h th ng thông qua ñ i tư ng • 3 thu c tính c a font: Font GraphicsEnvironment name, font style, font size. • Thí d : L y fonts h th ng ñưa vào choice cFonts • L p Font mô t cho 1 font. • Physical Fonts: Font th c, là GraphicsEnvironment ge; các font TrueType hay ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); PostScript Type 1. Font f[]= ge.getAllFonts(); • Logical Font: chia làm 5 nhóm: for (int i=0;i
  6. Font (tt) 7.5- Đ h a v i l p Graphics. • L p FontMetric cho ta • Graphic: Hình nh kích thư c font: do ta v ho c file String getName(): tên font nh. int getHeight() : chi u cao • M t GUI thi u hình FontMetricDemo.java nh là 1 GUI thi u int getAscend() sinh khí (dull). int getDescent() Kho ng h ñ n ký t • Trong gói AWT cung int getHeight() k ti p c p ñ i tư ng int getLeading() Graphics cho ta v và Tham kh o thêm trong Document c a l p này ñ bi t l p Image cho ta thêm các methods thao tác v i file nh. Thí d 2- Truy xu t thu c tính kích thư c font 11 12 6
  7. l p Graphics (tt) l p Graphics (tt) • L p Graphics có các phương th c v hình cơ b n, • Mu n v : L y ñ i tư ng ñ h a k t h p c a Frame tô m u: Hình Oval, Ractangle,Square, Circle, (Panel) b ng hành vi getGraphics() ho c hi n th c 1 Lines, Text, xu t file nh… trong các phương th c sau: (1) Phương th c paint(Graphics g) ñư c g i ngay khi n p class và ñư c g i b i phương th c update(..) (2) Phương th c repaint() ñư c g i khi c n v l i. (3) Phương th c update(Graphics g) ñư c g i t ñ ng b i phương th c repaint(). S xó các ñ i tư ng ñ h a cũ r i g i l i paint(g) Mu n v thêm mà không xóa các hình nh cũ, c n override phưong th c update như sau: public void update (Graphics g) { paint (g); } Slide sau cho th y thí d v cách vi t chương trình ñ h a 13 14 7
  8. 7.5.1- V ký t v i font và m u hi n hành 7.5.2- V hình nh – l p Graphics • abstract void drawLine(int x1, int y1, int x2, int y2) • void drawString(String str, int x, int y) v chu i b t ñ u t i to ñ (x,y) • abstract void drawOval(int x, int y, int width, int height) • void drawChars(char[] data, int offset, int length, int x, int y) • abstract void drawPolygon(int[] xPoints, int[] v length ký t t v trí offset trong m ng ký t yPoints, int nPoints) b t ñ u t i to ñ (x,y) • void drawPolygon(Polygon p) • void drawBytes(byte[] data, int offset, int • abstract void drawPolyline(int[] xPoints, int[] length, int x, int y) yPoints, int nPoints) V ký t có mã ký t trong m ng data, t v trí • void drawRect(int x, int y, int width, int height) offset, length ký t b t ñ u t i to ñ (x,y) • abstract void drawRoundRect(int x, int y, int width, (Xem thí d 3) Draw1.java int height, int arcWidth, int arcHeight) 15 16 8
  9. 7.5.3-V + tô m u hình nh Minh h a void fill3DRect (int left, int top, int width, int height, boolean raised) V trên Frame – Draw2.java abstract void fillArc (int left, int top, int width, int height, int startAngle, int arcAngle) V + Tô m u- Draw3.java abstract void fillOval (int left, int top, int width, int height) V bi u ñ kh i, bi u ñ qu t- BieuDo.java abstract void fillPolygon (int[] xPoints, int[] yPoints, int nPoints) V , Tô m u ña giác - PolygonDemo.java void fillPolygon (Polygon p) abstract void fillRect (int left, int top, int width, int height) abstract void fillRoundRect (int left, int top, int width, int height, int arcWidth, int arcHeight) 17 18 9
  10. 7.6- Paint mode 7.7- Đ h a v i Graphics2D • L p Graphics cung • 2 ch ñ ñ h a: c p các methods ñ • Overwrite mode: N i dung m i xóa n i h a nhưng không xây dung cũ. d ng các l p nh. • XOR mode : N i dung m i không xóa n i • L p Graphics2D k dung cũ, c 2 n i dung cùng kh ki n th a l p Graphics nhưng có xây d ng • g.setXORMode(Color.cyan); các l p mô t nh và • Thí d : Xem Draw4.java trong tài li u minh các phép bi n hình h a. …, có s d ng h t a ñ th c Xor-mode- Draw4.java 19 20 10
  11. Đ h a v i Graphics2D (tt) Đ h a v i Graphics2D (tt) • Trong gói geom (geometry- hình h c) • có interface Shape và hi n th c c a các l p Polygon, RectangularShape, Rectangle, Line2D, • Có l p …Double, CubicCurve2D, Area, …Float cho phép GeneralPath, mô t hình trong QuadCurve2D h t a ñ th c. 21 22 11
  12. Đ h a v i Graphics2D (tt) 7.8- Thao tác v i file nh • nh ñơn gi n là các hình v . • nh ph c t p là các file nh • Đ xu t nh t file, c n dùng ñ i tư ng Toolkit (ñ i tư ng truy xu t m t s file nh) và Image • Toolkit có th truy xu t file .GIF, .JPG, .JPEG • L p AffineTransform mô t cho các phép bi n hình ph ng • Ch ñ nh file nh c c b b ng tên file. Graph2D1.java • Ch ñ nh file trên m ng b ng ñ a ch URL. 23 24 12
  13. Thao tác v i file nh (tt) Xu t file nh (tt) L p Graphics, Graphic2D có các methods • S d ng Toolkit ñ truy xu t 1 file nh c c b : drawImage , 2 method thông d ng: String FileName= “img1.jpg"; public abstract boolean drawImage Image img; (Image img, int x,int y, ImageObserver observer) img= Toolkit.getDefaultToolkit().getImage (FileName); abstract boolean drawImage (Image img, int x, int y, int width, int height, ImageObserver observer) • S d ng Toolkit ñ truy xu t 1 file nh t URL: (x,y) v trí trên trái c a vùng xu t nh URL Addr = new URL ( http://www.xyz.com/img1.gif); observer: Đ i tư ng quan sát qúa trình n p nh. N u Image img ; là null, ch th y nh sau khi thay ñ i kích thư c c a img= Toolkit.getDefaultToolkit().getImage (Addr); s . Nên cho là container chư nh(this) ñ th y ngay nh. ShowImg1.java ( Thí d : Xem tài li u minh h a) 25 ShowImg2.java 26 13
  14. 7.9- Tóm t t 7.10- Chương trình v b ng chu t • The Graphics, Graphics2D classes are used to draw objects like text, lines, rectangle, ovals , arcs or show an image on the screen. • The methods drawXXX of these class will draw graphic on the screen. DrawWithMouse.java • To make an Image object associating to an image file, use java.awt.Toolkit class • The Font class manages the font of the characters that will be drawn on the screen. • The FontMetrics class is used to obtain information about a special font. • The Color class is used to manage color of objects on the screen. 27 28 14
  15. Xin cám ơn 29 15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2