GIAO DIỆN ĐỒ HỌA<br />
NGƯỜI DÙNG<br />
<br />
2D Graphics<br />
<br />
Từ khóa<br />
• AWT – Abstract Windows Toolkit<br />
• SWING<br />
• JFC – Java Foundation Classes<br />
• Java FX<br />
<br />
duytrung.tcu@gmail.com<br />
<br />
Đồ họa trong Java<br />
• Graphics là lớp cha của mọi<br />
ngữ cảnh đồ họa mà chương<br />
trình có thể vẽ lên các<br />
component trên nhiều thiết bị<br />
khác nhau<br />
<br />
• Một đối tượng Graphics<br />
chứa nhiều thông tin cần thiết<br />
để kết xuất đồ họa trong Java:<br />
- Đối tượng component sẽ vẽ lên<br />
<br />
- Gốc tọa độ<br />
- Màu, font chữ , hàm logic hiện tại …<br />
duytrung.tcu@gmail.com<br />
<br />
Object<br />
<br />
Graphics<br />
<br />
DebugGraphics<br />
<br />
Graphics2D<br />
<br />
Graphics vs Graphics2D<br />
• Graphics có nguồn gốc thuộc về thư viện AWT<br />
• Graphics2D xuất hiện ở Swing<br />
• Graphics2D kế thừa từ lớp Graphics, cung cấp nhiều tính<br />
năng đồ họa phức tạp hơn: về hình học, chuyển đổi tọa độ, xử lý<br />
màu sắc và văn bản<br />
• Để tương thích với các phương thức đồ họa kiểu cũ, đối số đầu<br />
vào vẫn là kiểu Graphics<br />
<br />
• Ta nên cast đối số này về kiểu Graphics2D để sử dụng cả 2<br />
duytrung.tcu@gmail.com<br />
<br />
Vẽ lên một component<br />
Làm thế nào để vẽ lên một component: một hình ảnh, một<br />
đường tròn, bản đồ…?<br />
Trả lời: Hãy override phương thức painComponent<br />
protected void paintComponent(Graphics g)<br />
<br />
• Phương thức painComponent<br />
JComponent tương ứng<br />
<br />
có trách nhiệm vẽ lên<br />
<br />
• Chẳng hạn với trường hợp JLabel là vẽ nên đoạn văn bản trên<br />
label<br />
duytrung.tcu@gmail.com<br />
<br />