1
Chương 7- Lập trình đồ họa
2
Mục tiêu
Đến cuối chương bạn có thể
•
Hiểu biết về lớp Font, lớp FontMetrics
•
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
3
Nội dung
7.1- Ôn tập
7.2- Các vấn đề cơ bản về vẽ.
7.3- Điều khiển mầu sắc.
7.4- Điều khiển Font.
7.5- Đồ họa với lớp Graphics.
7.6- Paint mode.
7.7- Đồ họa với lớp Graphics2D.
7.8- File ảnh.
7.9- Tóm tắt.
7.10- Chương trình vẽ bằng chuột.
4
7.1- Ôn tập
•
Event : Tín hiệu nhận biết có sự thay đổi
trạng thái.
•
Nguồn phát sinh event: Hệ thống, user,
event khác.
•
Có 2 mức sự kiện : low-level events (không
do user kích họat), semantic-level events
(event do user kích hoạt)
•
Có 4 loại semantic-level events: trong gói
java.awt.event: ActionEvent,
AdjustmentEvent, ItemEvent, TextEvent.
5
Ôn tập...
•
Event Source: Đối tượng kích hoạt 1 sự kiện.
•
Event là đối tượng mô tả có sự thay đổi trạng thái
của đối tượng nguồn.
•
Event handler: Các method xử lý tình huống dựa
trên loại Event object.
•
Khi 1 event xẩy ra, event source sẽ gọi các method
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.
6
7.2- Các vấn đề cơ bản về vẽ
•
Điều khiển mầu sắc.
•
Chọn Font
•
Thao tác vẽ : Vẽ chuỗi, vẽ hình, tô mầu.
•
Chế độ đồ họa Graphic mode.
•
Xuất file ảnh.
7
7.3- Điều khiển mầu sắc
•
Tại 1 thời điểm. có 1 mầu nền (background color, mặc
định là white) hiện hành và 1 mầu vẽ hiện hành mặc định
là black.
•
Thao tác với mầu nền và mầu vẽ của Frame:
setBackground(aColor); getBackground();
setForeground(aColor); getForeground();
•
Ấn định mầu vẽ g.setColor (aColor); // g:graphic object
•
Chỉ định mầu bằng các hằng mầu sắc: Khai báo sẵn trong
lớp Color Color.black , … Các hằng khác : white, gray
, lightGray, darkGray, red, pink, orange, yellow , green,
magenta, cyan , blue.
8
Đ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)
thông qua constructor của lớp Color :
Color class
public Color(float RedVal, float GreenVal, float BlueVal)
public Color(int RedVal, int GreenVal, int BlueVal) // 0..255
Truy xuất trị 1 mầu hoặc thành phần của 1 mầu
getRed(), getGreen(), getBlue(), getRGB()
•
Thí dụ về ấn định mầu hiện hành:
Color c = new Color( 255,130,60);
g.setColor(c) ; // g: graphic object
…
g.setColor(new Color(100,0,200));
9
7.4- Điều khiển Font
•
Font = Kiểu chữ , mô tả nét vẽ
(glyphs) của ký tự.
•
Có ký tự 1 nét (a), 2 nét (á)
•
3 thuộc tính của font: Font
name, font style, font size.
•
Lớp Font mô tả cho 1 font.
•
Physical Fonts: Font thực, là các
font TrueType hay PostScript
Type 1.
•
Logical Font: chia làm 5 nhóm:
Serif, SansSerif, Monospaced,
Dialog, và DialogInput
•
Label, TextField, ... chỉ sử dụng
Logical Font
10
Font....
•
Có thể lấy tập font trong máy bằng 1 đối tượng thuộc
lớp GraphicEnvironment.
•
Lấy fonts hệ thống thông qua đối tượng
GraphicsEnvironment
•
Thí dụ: Lấy fonts hệ thống đưa vào choice cFonts
GraphicsEnvironment ge;
ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
Font f[]= ge.getAllFonts();
for (int i=0;i<f.length;++i) cFonts.add(f[i].getFontName());
SystemFonts.java
11
Font (tt)
•
Lớp FontMetric cho ta kích
thước font:
String getName(): tên font
int getHeight() : chiều cao
int getAscend()
int getDescent()
int getHeight()
int getLeading()
Tham khảo thêm trong Document của lớp này để biết
thêm các methods
Thí dụ 2- Truy xuất thuộc tính kích thước font
Khoảng hở đến ký tự
kế tiếp
FontMetricDemo.java