第7章 图形、图像与多媒体
主要内容:绘图基础、绘图、图像处理基础、多媒体基础
7.1 绘图基础
Graphics类的基本功能:建立字体、设定显示颜色、显示图像和文本、绘制和填充各种几何图形。
getGraphics()
Paint() paintComponent()
字型和颜色
drawString(String str, int x,int y)
drawChars(char data[ ], int offset, int length, int x, int y)
drawBytes(byte data [ ], int offset, int length, int x, int y)
字型的三个要素:字体 、风格、 字号
类Font设置字型
构造方法有:
Font(String fontName, int style, int size)
常用方法如:getStyle() getName() 等
例题7.1
类Color设置颜色
构造方法有:
Color(int R, int G, int B)
常用方法如:setColor() setBackground() 等
getColor()
例题7.2
绘图模式:如何确定重叠部分,正常模式 、 异或模式
setPaintMode()、setXORMode()
7.2 绘图
Graphics类的绘图方法
画线段 drawLine()
画矩形drawRect()
画图
画带颜色的图形
画椭圆 drawOval()
画弧 drawArc()
画多边形 drawPolygon()
擦除矩形块 clearRect()
复制图形 copyArea()
例7.3 7.4
Graphics2D类的绘图方法
7.3 图像处理基础
图像载入和输出
Image类:getImage(URL url)
图像缓冲技术
加载图像
? 小应用程序通过URL得到网页上的图像
? 类java.applet.Applet中的方法
– Image getImage(URL url)
– Image getImage(URL url, String name)
– 返回图像对象
显示图像
? 类java.awt.Graphics中的成员方法
– 不带缩放的图像显示:
– boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
– boolean drawImage(Image img, int x, int y, ImageObserver observer)
– 带缩放的图像显示:
– boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
– boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
图像缓冲技术
? BufferedImage类
7.4 多媒体基础
播放幻灯片和动画
例7.7
播放声音
例7.8
通过定时器控制动画速度
? javax.swing.Timer
– 构造方法
public Timer(int delay, ActionListener listener)
– 成员方法
public void setInitialDelay(int initialDelay)
public void setCoalesce(boolean flag)
public void start( )
public void stop( )
动画制作
? 相关方法
public void actionPerformed(ActionEvent e)
repaint( );
public void paint(Graphics g)
提高动画质量
? 帧缓存技术
加载与播放声音资源
? 支持多种声音资源
– Sun Audio 文件 (.au 后缀),
– Windows Wave 文件 (.wav后缀),
– Macintosh AIFF文件(.aif 或 .aiff后缀)
– Musical Instrument Digital Interface (MIDI)文件 (.mid或.rmi 后缀).
类java.applet.Applet中的相关方法
? AudioClip getAudioClip(URL) 和 AudioClip getAudioClip(URL, String)
– 返回声音资源
? void play(URL) 和
void play(URL, String)
– 播放AudioClip
接口java.applet.AudioClip中相关方法
? void loop( )
– 重复播放audio clip
? void play( )
– 播放audio clip(不循环)
? void stop( )
– 停止播放