`
gg19861207
  • 浏览: 182811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java纪实之:java application 和java applet里对图片(image)操作的异同

阅读更多

该文章和上一篇的写作原因都是一样一样的,都是这次工作所使然。


将applet改为application的过程中,如果applet中没有对image的操作,那么改起来是很easy,按照上文所讲,加一个main()函数就OK,但是如果applet里有对image的操作的话,就稍微有些麻烦:
applet 文件原先的内容:
void initForm()
{
this.setBackground (Color.orange);
if(off_drag==null){
off_drag = createImage(width/4,height/4);
off_drag_buf = off_drag.getGraphics ();
}
}

其中的off_drag是一个Image类型,这里off_drag总是为空,造成图像的加载失败;
首先查看java api,了解一下原理,原来createImage(width/4,height/4);的作用就是创建一个双缓存图像,但是为什么为空呢?

上网google,得出了一个结论,这个好像是sun 公司编写的java api 的一个debug,该函数很有可能一直返回空。

既然该createImage(width/4,height/4)不稳定,那我能不能不用这个函数呢,反正java api里的函数那么多,我找个功能一样的不就完了吗?

再次google,有一个叫BufferedImage的类不错,这个是一次缓冲的图像,
off_drag的类型修改为BufferedImage类型,

修改代码:
void initForm()
{
this.setBackground (Color.orange);
if(off_drag==null){
off_drag = new BufferedImage(width/4,height/4,BufferedImage.TYPE_3BYTE_BGR);
off_drag_buf = off_drag.getGraphics ();
}
}
这时就OK了,off_drag不在为null.


贴一下效果图,让大家爽一下:


补充一下:在applet里可以通过下面的方法:
MediaTracker tracker= new MediaTracker (this);
//要载入的图片
pic[0]=getImage(getCodeBase(),"PICTURE0.JPG");
pic[1]=getImage(getCodeBase(),"PICTURE1.JPG");
pic[2]=getImage(getCodeBase(),"PICTURE2.GIF");


getCodeBase()方法是获取载入该applet文件的html文件的位置,因为在application里没有html了,所以该方法会报错,google了一下,网上有说改为getDocumentBase()方法,但是也达不到正确的结果,可以用toolkit来加载图像。
Toolkit toolkit = Toolkit.getDefaultToolkit();
pic[0] = toolkit.getImage("PICTURE0.JPG");
pic[1] = toolkit.getImage("img/PICTURE1.JPG");
pic[2] = toolkit.getImage("img/PICTURE2.GIF");
分享到:
评论

相关推荐

    适合练手、课程设计、毕业设计的Java项目源码:家庭理财系统(java+applet).rar

    适合练手、课程设计、毕业设计的Java项目源码:家庭理财系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:家庭理财系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:家庭理财...

    适合练手、课程设计、毕业设计的Java项目源码:阳光酒店管理系统(javaapplet+SQL).rar

    适合练手、课程设计、毕业设计的Java项目源码:阳光酒店管理系统(javaapplet+SQL).rar 适合练手、课程设计、毕业设计的Java项目源码:阳光酒店管理系统(javaapplet+SQL).rar 适合练手、课程设计、毕业设计的Java项目...

    java Application与java Applet的区别

    Java Application在权限上较为宽松,可以执行读/写文件等操作,而Java Applet受到沙盒模型的严格限制,禁止对本地文件系统进行读写操作,以保护用户数据安全。这一限制虽然牺牲了一定的功能性,但极大地增强了Web...

    javaapplication和javaapplet的区别

    在Java中,有两种主要的应用类型:Java Application(Java应用程序)和Java Applet(Java小程序)。这两种类型的程序虽然都是用Java编写的,但在结构、运行环境以及功能上存在显著差异。 #### 二、Java Application...

    适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+applet).rar

    适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+...

    JavaApplet和JavaApplication

    ### JavaApplet与JavaApplication详解 #### 一、Java Application(应用程序) ##### 1.1 编写Java Application Java Application 类似于使用其他编程语言(如VB、VC)编写的桌面应用程序,通常以控制台方式运行...

    Java_Application_Applet

    Java是世界上最流行的编程语言之一,尤其在开发桌面应用程序和网络应用程序方面有着广泛的应用。本压缩包文件"Java_Application_Applet"包含三个核心组件的源代码:计算器、日历以及时钟,这些都是用Java语言编写的...

    适合练手、课程设计、毕业设计的Java项目源码:图片浏览小程序(java+applet).rar

    适合练手、课程设计、毕业设计的Java项目源码:图片浏览小程序(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:图片浏览小程序(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:图片...

    Java Application和Applet两种方式求一元二次方程ax2+bx+c=0的根

    在Java编程语言中,我们可以利用不同的执行环境来创建不同类型的应用,比如Java Application和Applet。这两种方式都是基于Java平台,但它们的运行机制和应用场景有所不同。本篇文章将深入探讨如何用Java Application...

    Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet

    Java的线程和Java Applet是Java编程中的两个重要概念,它们分别涉及并发执行和Web应用程序的执行环境。 **线程**在Java中是程序执行的最小单元,它允许程序在同一时间执行多个任务。Java内置对多线程的支持,使得...

    java小程序Applet显示图片

    `java.awt.Graphics`类提供了一系列方法来绘制和操作图形,包括图片。例如,我们可以重写`paint()`方法来控制图片的显示方式: ```java public void paint(Graphics g) { if (image != null) { g.drawImage(image...

    JavaApplet_javaapplet小程序_java_

    JavaApplet是Java技术在早期Web开发中的一种重要应用,它允许开发者创建可以在网页中运行的小型程序。这些小程序能够增强交互性,提供动态内容,比如游戏、图表、动画等。JavaApplet运行在用户的浏览器上,由Java ...

    java applet 与 Java application的区别.mm

    java applet 与 Java application的区别.mm 使用freemind打开

    JAVA程序设计语言Applet应用程序.pdf

    Java程序主要分为两类:Java Application 和 Java Applet。 - **Java Application**:这类程序是独立运行的Java程序,通常具备`main`方法作为程序的入口点。我们通常所编写的Java程序都属于这一类别。 - **Java ...

    图片浏览小程序(java+applet)

    4. 图片处理:如果需要进行图片的裁剪、缩放等操作,可以使用`java.awt.image`包中的类,如`BufferedImage`和`AffineTransformOp`。 5. 性能优化:为了提高图片加载和显示的速度,可以考虑使用缓冲技术和预加载策略...

    JAVA界面设计——Applet和JFrame图片加载篇

    在Applet中加载图片,你需要使用`java.awt.Image`类和`javax.swing.ImageIcon`类。以下是一个基本示例: ```java import java.applet.Applet; import java.awt.Image; import javax.swing.ImageIcon; public class...

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    import java.awt.*"表明这段源代码涉及了Java编程语言,特别是与Applet和图形用户界面(GUI)相关的部分。`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体...

    java图片浏览小程序(java+applet).zip

    java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小...

    java applet 简单案例

    Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者在浏览器中嵌入可执行的小程序,为用户...通过简单的案例,你可以快速掌握Applet的基本概念和编程模式,这将对深入学习Java和其他Web技术有所帮助。

    java applet 电子相册

    Java的`java.io`包提供了读取和操作文件的方法,Applet可能使用这些方法来加载和显示图片。 8. **布局管理**:为了美观和用户体验,Applet可能会使用不同的布局管理器(如FlowLayout、BorderLayout或GridLayout)来...

Global site tag (gtag.js) - Google Analytics