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