Java 如何在小程序中加载和使用图像?

Java 如何在小程序中加载和使用图像?,java,image,path,applet,relative-path,Java,Image,Path,Applet,Relative Path,我已经做了两天了,我找不到一个方法来正确加载图像。小程序将在另一台计算机上本地运行,而不是在jar文件中(例如 在前面的一个小程序中,对于同一个项目,我只使用了.class文件,并直接在HTML源代码中使用了它们)。我的问题是:如何加载和使用具有相对路径(可能在.class文件旁边)的图像?这是我的部分代码 try { image = null; InputStream is = new BufferedInputStream( new FileInputStream( Syst

我已经做了两天了,我找不到一个方法来正确加载图像。小程序将在另一台计算机上本地运行,而不是在jar文件中(例如 在前面的一个小程序中,对于同一个项目,我只使用了.class文件,并直接在HTML源代码中使用了它们)。我的问题是:如何加载和使用具有相对路径(可能在.class文件旁边)的图像?这是我的部分代码

try {
    image = null;
    InputStream is = new BufferedInputStream( new FileInputStream( System.getProperty("user.dir")+"\\toshiba.jpeg" )); 
    image = ImageIO.read(is); 
    image = image.getScaledInstance(400,200,Image.SCALE_SMOOTH); 
} 
catch (IOException e) {} 
Icon ic = new ImageIcon(image);

尝试使用
getDocumentBase()
。它返回存储小程序的文件夹的路径

@RoxasShadow尝试使用
getDocumentBase()


@Nick992尝试过它,但它返回空值,我想我在某个地方读到过,你只能在远程网站而不是本地访问的小程序中使用它

人们的想法无法解释

import java.awt.GridLayout;
import javax.swing.*;

// <applet code=WhereAmIApplet width=500 height=50></applet>
public class WhereAmIApplet extends JApplet {

    @Override
    public void init() {
        setLayout(new GridLayout(0,1,5,5));
        add(new JLabel("Document Base: " + getDocumentBase()));
        add(new JLabel("Code Base: " + getCodeBase()));
    }
}

导入java.awt.GridLayout;
导入javax.swing.*;
// 
公共类,其中miapplet扩展了JApplet{
@凌驾
公共void init(){
setLayout(新网格布局(0,1,5,5));
添加(新JLabel(“文档库:+getDocumentBase()));
添加(新的JLabel(“代码库:+getCodeBase());
}
}

尝试了它,结果返回空值,我想我在某个地方读到过,您只能在远程网站而不是本地访问的小程序中使用它。。。但无论如何还是要感谢:)对文档库的调用很好,但是“可能在.class文件旁边”建议更多的是代码库。“小程序将在另一台计算机上本地运行,……”不要使用小程序。为用户提供一个包含所有资源的可执行Jar。以用户身份访问资源。有关如何形成
URL
.1)Oh。。小程序和文件的混合就像油和水的混合一样(不是)。使用URL加载图像。2) 将形式为
catch(异常e){..
的代码更改为
catch(异常e){e.printStackTrace();//非常有用!。