簡體   English   中英

java.lang.reflect.InvocationTargetException

[英]java.lang.reflect.InvocationTargetException

我有一個帶有一些按鈕的小程序,按鈕上有圖像圖標。 我還使用此小程序制作了一個HTML文件。 每當我從服務器(Apache tomcat)打開此頁面時,都會發生異常:

java.lang.reflect.InvocationTargetException.

但是,如果我不帶圖標運行,那就沒有問題。 誰能幫我,以便我可以用按鈕圖標加載小程序?

Image myImage = getToolkit().createImage("image/REC1.jpg");

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

Toolkit.createImage(String)

返回從指定文件獲取像素數據的圖像 返回的Image是一個新對象,該對象不會與此方法或其getImage變體的任何其他調用方共享。

此方法首先檢查是否安裝了安全管理器。 如果是這樣,則該方法使用指定的文件調用安全管理器的checkRead方法,以確保允許創建映像。

我將兩部分加粗了:

  • 文件 -僅指向運行小程序的計算機的本地文件系統。 因此不適合Applet中的圖標-它們必須在服務器上。 和..
  • 安全管理器 -不允許沙盒小程序讀取或寫入本地文件系統。 那可能是缺少堆棧跟蹤的重要部分。

Applet資源訪問

如果通過沙箱安裝,小程序需要從“家庭服務器”中加載資源

圖標可能是嵌入的資源,位於applet元素的archive屬性中引用的Jar中,但是如果將它們作為圖像加載到服務器,則可以相對於文檔庫或代碼庫進行訪問。 這是包含HTML的目錄的image子目錄中名為REC1.jpgimage外觀。

URL url = new URL(getDocumentBase(), "image/REC1.jpg");
Image myImage = getToolkit().createImage(url);

您也可以使用.PNG文件格式。 並使用小寫字母作為文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM