该文章和上一篇的写作原因都是一样一样的,都是这次工作所使然。
将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项目源码:阳光酒店管理系统(javaapplet+SQL).rar 适合练手、课程设计、毕业设计的Java项目源码:阳光酒店管理系统(javaapplet+SQL).rar 适合练手、课程设计、毕业设计的Java项目...
Java Application在权限上较为宽松,可以执行读/写文件等操作,而Java Applet受到沙盒模型的严格限制,禁止对本地文件系统进行读写操作,以保护用户数据安全。这一限制虽然牺牲了一定的功能性,但极大地增强了Web...
在Java中,有两种主要的应用类型:Java Application(Java应用程序)和Java Applet(Java小程序)。这两种类型的程序虽然都是用Java编写的,但在结构、运行环境以及功能上存在显著差异。 #### 二、Java Application...
适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:聊天系统(java+...
### JavaApplet与JavaApplication详解 #### 一、Java Application(应用程序) ##### 1.1 编写Java Application Java Application 类似于使用其他编程语言(如VB、VC)编写的桌面应用程序,通常以控制台方式运行...
Java是世界上最流行的编程语言之一,尤其在开发桌面应用程序和网络应用程序方面有着广泛的应用。本压缩包文件"Java_Application_Applet"包含三个核心组件的源代码:计算器、日历以及时钟,这些都是用Java语言编写的...
适合练手、课程设计、毕业设计的Java项目源码:图片浏览小程序(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:图片浏览小程序(java+applet).rar 适合练手、课程设计、毕业设计的Java项目源码:图片...
在Java编程语言中,我们可以利用不同的执行环境来创建不同类型的应用,比如Java Application和Applet。这两种方式都是基于Java平台,但它们的运行机制和应用场景有所不同。本篇文章将深入探讨如何用Java Application...
Java的线程和Java Applet是Java编程中的两个重要概念,它们分别涉及并发执行和Web应用程序的执行环境。 **线程**在Java中是程序执行的最小单元,它允许程序在同一时间执行多个任务。Java内置对多线程的支持,使得...
`java.awt.Graphics`类提供了一系列方法来绘制和操作图形,包括图片。例如,我们可以重写`paint()`方法来控制图片的显示方式: ```java public void paint(Graphics g) { if (image != null) { g.drawImage(image...
JavaApplet是Java技术在早期Web开发中的一种重要应用,它允许开发者创建可以在网页中运行的小型程序。这些小程序能够增强交互性,提供动态内容,比如游戏、图表、动画等。JavaApplet运行在用户的浏览器上,由Java ...
java applet 与 Java application的区别.mm 使用freemind打开
Java程序主要分为两类:Java Application 和 Java Applet。 - **Java Application**:这类程序是独立运行的Java程序,通常具备`main`方法作为程序的入口点。我们通常所编写的Java程序都属于这一类别。 - **Java ...
4. 图片处理:如果需要进行图片的裁剪、缩放等操作,可以使用`java.awt.image`包中的类,如`BufferedImage`和`AffineTransformOp`。 5. 性能优化:为了提高图片加载和显示的速度,可以考虑使用缓冲技术和预加载策略...
在Applet中加载图片,你需要使用`java.awt.Image`类和`javax.swing.ImageIcon`类。以下是一个基本示例: ```java import java.applet.Applet; import java.awt.Image; import javax.swing.ImageIcon; public class...
import java.awt.*"表明这段源代码涉及了Java编程语言,特别是与Applet和图形用户界面(GUI)相关的部分。`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体...
java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小程序(java+applet)java图片浏览小...
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者在浏览器中嵌入可执行的小程序,为用户...通过简单的案例,你可以快速掌握Applet的基本概念和编程模式,这将对深入学习Java和其他Web技术有所帮助。
Java的`java.io`包提供了读取和操作文件的方法,Applet可能使用这些方法来加载和显示图片。 8. **布局管理**:为了美观和用户体验,Applet可能会使用不同的布局管理器(如FlowLayout、BorderLayout或GridLayout)来...