java的多媒体应用_java在多媒体中的应用

41528d3028836879cd698677c3999917.gifjava在多媒体中的应用

第9章 Java在多媒体中的应用,9.1 利用AWT绘图 9.2 Graphics类的使用 9.3 Font类的使用 9.4 图像处理 9.5 动画图像处理,9.1 利用AWT绘图,这一节中我们主要介绍如何使用Java语言提供的AWT包绘图。java.awt包中提供了用于绘图的API,我们通常称之为2D API。不要以为只有设计绘图程序或游戏软件才会用到Java 2D,其实Java 2D的用途可能远比你想象的更广泛。,其实,只要你的程序有GUI,就很可能会用到Java 2D。因为AWT和Swing的组件常常无法完全适合我们,这个时候自己绘制一部分的GUI就有绝对的必要。甚至,我们还可以用Java 2D来绘制自己的组件。实际上,AWT和Swing组件都是透过Java 2D来进行绘制的。,Java 2D API增强了AWT的图形、文本和图像功能,可以开发更为强大的用户接口和新型的Java应用程序。除了更为强大的图形、字体和图像API外,Java 2D API还改进了颜色的定义与复合及对任意几何形状和文本的选中检测,并为打印机和显示设备提供了统一的绘制模式。Java 2D API还可以创建高级图形库,并可创建图像和图形文件读/写过滤器。当与Java媒体框架 (JMF) 和其他Java媒体应用程序配合使用时,Java 2D API还可用来创建和显示动画和其他多媒体演示稿。,到底Java 2D API有多强大?这一点我们可以通过SUN JDK包中提供的例程来了解。在命令行窗口下输入: c:\>cd \jdk1.2\demo\jfc\Java2D c:\jdk1.2\demo\jfc\Java2D>java -classpath Java2Demo.jar Java2Demo 或 c:\jdk1.2\demo\jfc\Java2D>appletviewer java2demo.html 看到了吗?Java 2D神奇的威力!,下面我们来学习如何使用Java 2D绘图。上面看到的例子虽然功能十分强大,但是它的实现非常复杂。下面,我们先从简单一点的入手。 从java.awt.Component类(所有窗口对象的基类)继承的类提供了一个名为paint()的方法,在需要重新绘制组件时,可调用该方法。 paint()方法只有一个参数,该参数是Graphics类的实例。如果在某个继承了Component的类中覆盖了该方法,那么就可以使用该方法来控制在控制区域着何种颜色。例如,下面的类创建了一个带有蓝背景的面板。,例9.1 BluePanel.java import java.awt.*; class BluePanel extends Panel {public static void main(String[] args) {Frame f = new Frame(); BluePanel p = new BluePanel(); f.add(p); f.setSize(300,100); f.setVisible(true);},// Invoked when the panel needs to be repainted public void paint(Graphics g) {// Get the rectangle that represents the viewable area // of the panel Rectangle rect = g.getClipBounds(); // Set the context to paint in a pre-defined color g.setColor(Color.blue); // Fill the rectangle with the current color g.fillRect(rect.x, rect.y, rect.width, rect.height);} } 程序运行结果如图9.1所示。,图 9.1,,9.2 Graphics类的使用,java.awt中提供了一系列的类用于绘制图形。其中,Color类包含了编辑颜色的方法和常量;Font类包含了编辑字体的方法和常量;FontMetrics类包含了获取字体信息的方法;Polygon类包含了创建多边形的方法;Toolkit类提供了从系统获得图形信息的方法,例如可显示的字体集和屏幕分辨率等等;Graphics类包含了绘制字符串、线条以及各种几何图形的方法。,Graphics是一个抽象类,其作用是定义一个真正的工具,用来接受图形操作。在该类中,有47个公用方法,可以用作显示图像和文本、绘制和填充形状、剪贴图像操作等等。 9.2.1 绘制字符串、字符和字节 用于绘制字符串、字符和字节的方法分别为 ● public abstract void drawString(String string, int x, int y)在坐标(x,y)处以当前字体和颜色绘制指定的字符串string。,● public void drawChars(char[] chars, int offset, int number, int x, int y) 在坐标(x,y)处以当前字体和颜色绘制指定的一系列字符。chars为要绘制的字符组,offset为位置的坐标,number为要绘制的元素个数。 ● public void drawBytes(byte[] bytes, int offset, int number, int x, int y) 在坐标(x,y)处以当前字体和颜色绘制指定的一系列字节。bytes为要绘制的字节数组,offset为位置的坐标,number为要绘制的元素个数。,下面的例子展示了如何使用了drawString(),drawChars()和drawBytes()三个方法: 例9.2 DrawSCB.java import java.awt.*; public class DrawSCB extends Frame {String s = “Using drawString!“; char[] c = { c , h , a , r , s , , 8 }; byte[] b = { b , y , t , e , 1, 2, 3};,public static void main(String[] args) {DrawSCB frame = new DrawSCB(); frame.setSize(300, 100); frame.setVisible(true);} public void paint(Graphics g) {g.drawString(s, 100, 40); g.drawChars(c, 0, 7, 100, 65); g.drawBytes(b, 0, 5, 100, 90);} } 程序运行结果如图9.2所示。,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值