`
aocshallo
  • 浏览: 9526 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

awt 学习笔记5

阅读更多

第4章 颜色和字体
两种颜色模式:索引颜色模式和直接颜色模式

AWT技巧:在应用程序和applet中加载图像
  appet中提供下面的两种重载方法,用于加载图像:
  Applet.getImage(URL url)
  Applet.getImage(URL url,String string)
  由于应用程序不是applet类的扩展——应用程序通常扩展java.awt.Frame——所以它们必须用替代的方法来加载图像。下面列出的java.awt.Toolkit方法就是在应用程序中经常采用的加载图像的方法:
  Toolkit.getImgae(URL url)
  Toolkit.getImage(String string)


加载图像是异步进行的,load→imageUpdate()→repaint()→load直到完成,所以通过FLAGS的值来判断图像加载的情况
ImageObserver.imageUpdate(Image image, int flags, int x, int y, int w, int h)
flags 值
  ABORT      图像加载被中断
  ALLBITS      所有的位都已经加载给图像
  ERROR      在加载过程中发生错误
  FRAMEBITS    多帧图像的一个帧被传送,一般用于动画GIF
  HEIGHT      图像的高度已经可用
  PROPERTIES    图像的属性已经可用
  SOMEBITS    图像的缩放变体的多个位已可用
  WIDTH      图像的宽度已经可用

AWT技巧:在调用paint()方法之前,update()进行背景清除
  无论什么时候调用repaint(),Component.update()方法都会被调用,该方法将首先清除构件中的背景,然后调用paint()。当该方法被设置为缺省行为时,如果构件被连续修改,它能引起闪动。要消除闪动,可覆盖update()直接调用paint()方法。


使用MediaTracker分为下面的三步:
  1)创建MediaTracker实例。
  2)使用MediaTracker.addImage()指明要跟踪的图像对象。
  3)创建try/catch块。try块等待和ID相关的图像完全加载。由于MediaTracker的waitForID方法可能抛出InterruptedException方法,而且不必通过将变量flags和正确的常量求与来判断什么时候图像被完全加载。


  AWT技巧:在AWT构件中,使用系统属性控制图像重画
  在AWT构件中,有下面的两个系统属性影响图像的重画特征:
  awt.image.incrementalDraw
  awt.image.redrawrate
  如果awt.image.incrementalDraw的值是false,则表示即使当它们的位发生改变时图像不会被持续地画出;只有图像被完全加载后,图像才会显示出来。
  awt.image.redrawrate决定动画的速率,其单位是ms。如果不设置该属性的话,其缺省值为100ms。


我们可以通过一些其他的方法,来代替通过指定图像硬编码的URL路径或文件名来加载图像。一般情况下,采用的都是加载图像作为资源的方法。通过类加载器的算法可以指定资源搜索的方式,在该方式下,允许资源位于不同的位置,包括可以位于.jar和.zip文件中。当作为资源被加载时,和图像相关的URL的getContent被调用时返回ImageProducer。一旦得到ImageProducer,Component.createImage(ImageProducer)可能会被调用,并返回一个图像本身的引用。
  加载图像作为资源为加载图像提供了比较通用的机制,该方法不必依赖于图像位于事先知道的位置。此外,还可以开发自定义类加载器,使用搜索方式在网络上搜索资源。

在java.awt.Component中,提供下面的两种方法用来创建图像:
  ·createImage(ImageProducer)
  ·createImage(int width,int height)
java.awt.Toolkit类也具有创建图像能力。在该类中,提供了下面的三种创建图像的方法:
  ·createImage(ImageProducer)
  ·createImage(byte[] bits)
  ·createImage(byte[] bits,int offset,int length)


代码段:
URL url = this.getClass().getResources("资源文件名");//注这个文件要以/开头 这是个相对于项目环境根目录的一个相对位置
//Image img = 上面两个类中的createImage(ImageProducer方法); 下面这两种方法根据不同的分类执行
//Image img = this.createImage((ImageProducer)url.getContent());   applet
//Image img = Toolkit.getDefaultToolkit().createImage((ImageProducer)url.getContent()); application

分享到:
评论

相关推荐

    JAVA图形编程(AWT+SWING)

    通过`java图形编程1-AWT.chm`和`java图形编程2-Swing.chm`这两个文档,你可以深入学习AWT和Swing的使用方法,了解组件的创建、布局管理、事件处理、模型-视图-控制器模式,以及如何利用Swing的高级功能来构建复杂的...

    j2se学习笔记和java学习笔记

    本学习笔记旨在深入理解J2SE的基础概念、核心特性以及实际应用。 一、Java基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点包括跨平台性(Write Once, Run ...

    java学习笔记(一个初学者的java学习笔记)

    ### Java学习笔记——基础知识详解 #### 一、Java基本数据类型及内存占用 Java作为一种广泛使用的编程语言,其基础数据类型对于理解程序的行为至关重要。Java提供了八种基本数据类型,分为数值型、字符型和布尔型...

    java学习笔记JDK6.0课件和代码

    这个压缩包中包含的"java学习笔记JDK6课件和课本代码"是学习JDK 6.0的重要参考资料,可以帮助你深入理解Java编程的核心概念和实践技巧。 1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括类、对象、...

    java学习笔记JDK6课件和课本代码.rar

    本压缩包"java学习笔记JDK6课件和课本代码.rar"中包含的资源,旨在帮助学习者深入理解Java编程,并掌握JDK 6的关键特性。以下是一些主要的知识点: 1. **基础语法**:Java的基础语法包括变量声明、数据类型、运算符...

    java学习笔记 初学者必读

    5. 四•数组 5-9 5.1. 声明数组 5-9 5.2. 创建数组 5-9 5.3. 初始化数组 5-10 5.4. 多维数组 5-10 5.5. 数组拷贝 5-10 6. 五•对象和类 6-11 6.1. 面向对象与面向过程 6-11 6.2. 对象的概念 6-12 6.3. 成员变量和...

    《Java JDK 6 学习笔记》配书示例

    《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...

    AWT和Swing笔记,java图形化界面编程

    学习并熟练掌握AWT和Swing,可以让Java程序员创建出具有吸引力和高效交互的图形用户界面,从而提高软件的用户体验。在实际开发中,可以根据需求选择使用AWT的原生感观或Swing的跨平台一致性,以达到最佳的设计效果。

    corejava2awt

    全是自己编写的,没问题,是个学习java awt的好笔记。是个非抢号的一个学习资料

    java学习笔记及源代码

    这份"java学习笔记及源代码"的资源,显然旨在帮助初学者或有经验的开发者深入理解和实践Java编程。以下是对这个主题的详细阐述: 一、Java语言基础 1. 类与对象:Java的核心是面向对象编程,类是对象的模板,对象是...

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...

    Java OpenGL(JOGL)学习笔记,含代码

    Java OpenGL(JOGL)学习笔记 在学习 JOGL 时,我们需要了解图形显示器是如何工作的。图形显示器是一个由许多像素点组成的绘图区域,图形系统的核心是一个魔法画笔,这支画笔能以非常快的速度移动到一个确定的像素...

    java学习笔记 达内笔记(经典)

    (二)面向对象技术总结.pdf (三)corejava高级特性总结 (四)接口学习总结 (五)异常和内部类 (六)集合框架学习总结 (七)GUI和AWT事件模型 (八)多线程学习总结 (九)输入输出流学习总结 (十)网络编程学习总结

    java学习笔记,全程

    【Java学习笔记全程详解】 Java作为一种广泛应用于企业级开发、移动应用、大数据处理等领域的编程语言,其学习过程涵盖了许多核心概念和技术。这份"我的Java学习笔记"详细记录了作者在学习Java过程中积累的心得体会...

    JAVA入门实例代码及学习笔记

    【JAVA入门实例代码及学习笔记】是一份针对初学者精心准备的资料,涵盖了JAVA语言的基础到进阶的各种重要概念和实战技巧。这份资料通过实际的代码示例和详细的学习笔记,帮助初学者深入理解JAVA编程。 1. **面向...

    javase6 学习笔记(李兴华培训课堂笔记所有.)

    JavaSE6学习笔记是针对Java初学者和进阶者的一份宝贵资料,由知名讲师李兴华的培训课堂笔记汇编而成。这份笔记全面、详细地涵盖了Java SE 6版本的核心概念和技术,对于理解Java编程语言的基础以及进阶特性具有重要...

    java代码笔记2010-06-24:java 实现一个分页操作(JDBC+GUI->AWT) 实例

    这篇2010年6月24日的博客文章“Java代码笔记”提供了一个使用JDBC(Java Database Connectivity)与GUI(图形用户界面)AWT(Abstract Window Toolkit)实现分页操作的实例。接下来,我们将详细探讨这个知识点。 ...

    Java学习笔记JDK6.rar

    这份"Java学习笔记JDK6.rar"压缩包显然是一份针对初学者或希望深入理解Java基础的开发者的学习资料,它涵盖了JDK6版本的相关知识。 在JDK6中,有几个关键的知识点值得深入探讨: 1. **基础语法**:Java的基础语法...

Global site tag (gtag.js) - Google Analytics