2

ImageIcon を JMenuItem に追加する際に問題があります。チュートリアルに書かれている通りに追加しましたが、うまくいきませんでした。Googleで何が問題なのかを確認しましたが、見つかりませんでした。これはコードです:

File.add(new JMenuItem("New", new ImageIcon("images/new.gif")));

問題は、アイコンが .class または .java ファイルと同じフォルダーにないことにあるのではないかと考えたので、アイコンを置き換えましたが、まだ機能していません。メニューにはテキストのみが表示されます。機能させるにはどうすればよいですか?

4

1 に答える 1

4

相対ファイル名を引数として渡しています。このファイル名はクラスに関連していません。これは、JVM の現在のディレクトリに相対的です。また、Java が起動されたディレクトリの場合は現在のディレクトリ。したがって、からプログラムを起動すると、クラスが jar ファイルまたはディレクトリにある場合でもc:\foo、ファイルが検索されます。c:\foo\images\new.gifd:\Java\myApp.jare:\projects\myApp\classes

ImageIcon として使用されるファイルは、通常、クラス ファイルとともにアプリケーションの jar ファイルにバンドルされ、クラス ローダーによってロードされます。ファイルを package の下に保存する場合はcom.foo.bar、次を使用する必要があります

new ImageIcon(MyClass.class.getResource("/com/foo/bar/new.gif"));
于 2012-07-07T21:58:46.363 に答える