文档介绍:图形编程
第八章
回顾
Java最新的事件处理方法是基于授权事件模型。
事件是描述事件源状态变化的对象。用户与GUI组件交互就会生成事件。
事件源是一个生成事件的对象。当这个对象的内部状态改变时,事件就会发生。
在发生事件时,事件源将调用监听器定义的相应方法。
2
目标
解释图形的绘制
描述 Graphics 对象
了解 Font 类
了解 FontMetrics 类
了解 Color 类
掌握绘制各种图形的方法
3
所有的图形被画到相关联的窗口中。
完全可以直接在框架(Frame)中绘入文本信息,甚至可以直接在框架中绘图。
框架经常被设计为一个组件容器。一般首先在一个面板中进行绘制,然后再将这个面板添加到框架。
在框架中显示信息
4
ponent 方法
JPanel 非常适合于绘制自定义图形
其图形对象是作为 ponent() 方法的参数获得的。
要创建自定义图形,需要编写扩展 JPanel 类的新类。ponent() 方法:
public void ponent(Graphics g){
. . .// 将在这里通过参数g完成绘制代码
}
5
Graphics对象
ponent方法包含一个Graphics类型的参数。
Graphics对象记录针对绘制图形和文本的一系列设置,比如设置的图标或当前颜色、字体等。
Java中,所有绘制都必须通过一个图形对象。
6
Graphics对象的局限性
可以用Graphics对象绘制的图形是原始图形。
对于这些图形,不能使用实数坐标
不能绘制虚线或宽度不定的线条
不能使用纹理或渐变颜色填充形体
7
Graphics2D对象
Java2D 包括一个 Graphics2D 类,此类扩展了 Graphics 类,所有图形方法都可以配合 Graphics2D 对象使用
Java 2D 图形的重要功能:
颜色和图案:图形可以用渐变颜色和填充图案着色。
透明绘制:图形的不透明度通过α透明值控制。
本地字体:平台上的所有本地字体都可用于绘制文本。
画笔的显式控制:可以使用线条的粗细、虚线图案以及段连接样式。
坐标系的转换:可以使用平移、缩放、旋转和剪切
为了解决图形对象的局限性, 2D。
8
基本的绘图方法
public void paint(Graphics g) {
(someColor); // 设置颜色
(someLimitedFont); //设置字体
(...);//绘制字符串
(...); //画线
(...); // 绘制图形轮廓
(...); // 绘制填充图形
(...); //绘制图形轮廓
(...); //绘制图形轮廓
...
}
每个 AWT 组件定义一种传递 Graphics 对象的 paint
方法,绘制便是在该对象上执行。
设置画
笔参数
9
Java 2D 中的基本绘图方法
public void ponent(Graphics g) {
(g);
Graphics2D g2d = (Graphics2D)g;//强制转换为Graphics2D
(fillColorOrPattern);
(penThicknessOrPattern);
(posite);
(anyFont);
(anyColor);
(...);
(...);
(...);
(...);
(ransform);
SomeShape s = new SomeShape(...);
(s); // 绘制图形轮廓
(s); // 绘制填充图形
}
设置画
笔参数
10