首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.reflect.InvocationTargetException

java.lang.reflect.InvocationTargetException
EN

Stack Overflow用户
提问于 2012-07-04 16:41:22
回答 2查看 2.5K关注 0票数 0

我有一个小程序,里面有一些按钮,这些按钮有图像图标。我还用这个applet制作了一个HTML文件。每当我从服务器(Apache tomcat)打开此页面时,都会发生异常:

代码语言:javascript
复制
java.lang.reflect.InvocationTargetException.

但是如果我在没有图标的情况下运行,就没有问题了。有没有人能帮我,让我用按钮图标加载小程序?

代码语言:javascript
复制
Image myImage = getToolkit().createImage("image/REC1.jpg");

ImageIcon myIcon = new ImageIcon(myImage);
button.setIcon(myIcon);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 18:30:44

Toolkit.createImage(String)

返回一个图像,该图像从指定的文件中获取像素数据。返回的图像是一个新对象,不会与此方法或其getImage变体的任何其他调用者共享。

此方法首先检查是否安装了安全管理器。如果是,则该方法使用指定的文件调用安全管理器的checkRead方法,以确保允许创建映像。

我把两部分加粗了:

  • File - only始终指向运行小程序的计算机的本地文件系统。所以不适合小程序中的图标-它们必须在服务器上。And..
  • Security管理器-不允许沙盒小程序读取或写入本地文件系统。这可能是堆栈跟踪中缺失的重要部分。

小程序资源访问

如果使用沙箱,小程序需要从‘主服务器’加载资源,通过URL。

图标可能是嵌入的资源,在applet元素的archive属性中引用的Jar中,但是如果它们作为图像加载到服务器,则可以相对于文档库或代码库访问它们。下面是包含REC1.jpg的目录的HTML子目录中名为image的图像的外观。

代码语言:javascript
复制
URL url = new URL(getDocumentBase(), "image/REC1.jpg");
Image myImage = getToolkit().createImage(url);
票数 1
EN

Stack Overflow用户

发布于 2012-07-04 16:48:00

您也可以使用.PNG文件格式。并使用小写字母作为文件名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11325466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档