我正在尝试在基于Web的应用程序上使用的Java小程序上显示JPEG图像和移动点。但是,当我运行applet时,它运行正常,但是当我从JSP页面显示applet时,我得到的是移动点而不是JPEG图像。
是否有JPEG需要的特定文件夹?
这是我用于在屏幕上绘制图片和移动点的两种方法。
public class mapplet extends Applet implements Runnable {
int x_pos = 10;
int y_pos = 100;
int radius = 20;
Image img, img2;
Graphics gr;
URL base;
MediaTracker m;
@Override
public void init() {
mt = new MediaTracker(this);
try {
//getDocumentbase gets the applet path.
base = getCodeBase();
img = getImage(base, "picture.jpg");
m.addImage(img, 1);
m.waitForAll();
} catch (InterruptedException ex) {
Logger.getLogger(movement.class.getName()).log(Level.SEVERE, null, ex);
}
public void paint (Graphics g) {
g.drawImage(img, 0, 0, this);
// set color
g.setColor (Color.red);
// paint a filled colored circle
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
下面的代码是来自jsp页面的调用
<applet archive="mapplet.jar" code="myapplets/mapplet.class" width=350 height=200>
</applet>
jar文件和图片与jsp页面位于同一文件夹中,还有一个文件夹,其中包含应用程序Web部分中applet的类和图像的内容。小程序加载正常,但图片不显示。我认为这不是代码,而是图片的位置导致问题。
由于
答案 0 :(得分:0)
是的,图像应与源代码位于同一文件夹中。我建议做一个名为images的文件夹,在里面放置你所有的图像,只需将“picture.jpg”改为“\ images \ picture.jpg”即可。检查您的网站目录,查看该图像是否与源代码位于同一文件夹中。
答案 1 :(得分:0)
有些评论可能会让您更清楚。
//getDocumentbase gets the applet path.
没有。 getDocumentBase()
提供了网页的路径。但这既不在这里,也不存在,因为这个applet实际上是在调用..
base = getCodeBase();
..提供代码库。除非在applet元素中指定了codebase
参数,否则代码库默认到网页目录。由于applet元素未声明codebase
,因此base
将与文档库的URL相同。
BTW:在小程序元素
中code="myapplets/mapplet.class"
..应该是..
code="myapplets.mapplet"
由于Java类名称的常用术语是EachWordUpperCase
,因此应更改类名。
小程序是否声明了?
package myapplets;
BTW(2):
还有一个文件夹,其中包含应用程序的Web部分中applet的类和图像的内容。
这是什么意思?请提供从服务器根目录到使用的所有资源(例如HTML / JSP,Jar文件和图像)的完整路径。
答案 2 :(得分:0)
请检查您的路径..或解决它,请将您的文件放在一个文件夹中,并用JAR文件打包。并提供jar中图像文件的相对路径。 喜欢: 让你的applet名称是包demoBA中的myapp.class 然后将您的文件放在demoapp中的dir“images”中,并在所有java代码中提供相对于此路径的路径。 别忘了在jar版本中包含图像文件。