0

いくつかのボタンを含むアプレットがあり、ボタンには画像アイコンがあります。このアプレットで HTML ファイルも作成しました。サーバー (Apache tomcat) からこのページを開くたびに、例外が発生します。

java.lang.reflect.InvocationTargetException.

しかし、アイコンなしで実行しても問題はありません。ボタンアイコンを使用してアプレットをロードできるように、誰か助けてもらえますか?

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

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

2 に答える 2

1

Toolkit.createImage(String):

指定されたファイルからピクセル データを取得するイメージを返します。返された Image は、このメソッドまたはその getImage バリアントの他の呼び出し元と共有されない新しいオブジェクトです。

このメソッドは、最初にセキュリティ マネージャがインストールされているかどうかを確認します。その場合、メソッドは、指定されたファイルを使用してセキュリティ マネージャーのcheckReadメソッドを呼び出し、イメージの作成が許可されていることを確認します。

2 つの部分を太字にしました。

  • ファイル- アプレットが実行されているコンピューターのローカル ファイル システムのみを指します。したがって、アプレットのアイコンには適していません。サーバー上にある必要があります。と..
  • Security Manager - サンドボックス化されたアプレットがローカル ファイル システムに対して読み取りまたは書き込みを行うことを許可しません。これは、欠落しているスタック トレースの重要な部分である可能性があります。

アプレット リソース アクセス

アプレットは、 URLによってサンドボックス化されている場合、「ホーム サーバー」からリソースをロードする必要があります。

archiveアイコンは、要素の属性で参照される Jar 内の埋め込みリソースである可能性がありますがapplet、画像としてサーバーにロードされている場合は、ドキュメント ベースまたはコード ベースに関連してアクセスできます。HTML を含むディレクトリのサブディレクトリで指定さREC1.jpgれた画像は、次のようになります。image

URL url = new URL(getDocumentBase(), "image/REC1.jpg");
Image myImage = getToolkit().createImage(url);
于 2012-07-04T10:30:43.627 に答える
0

.PNG ファイル形式も使用できます。ファイル名に小文字を使用しました。

于 2012-07-04T08:48:00.160 に答える