将ImageIcon添加到JMenuItem时出现问题。我添加它就像它在教程中编写但它没有用。我已经检查过谷歌有什么不对,但没找到。 这是代码:
File.add(new JMenuItem("New", new ImageIcon("images/new.gif")));
我认为问题可能是图标与.class或.java文件不在同一个文件夹中,所以我已经替换它了 - 但仍然无效。 菜单只显示文字.. 我该怎么办才能让我工作?
答案 0 :(得分:4)
您正在传递相对文件名作为参数。此文件名与类无关。它与JVM的当前目录相关。以及当前目录(如果启动java的目录)。因此,如果您从c:\foo
启动该程序,它将查找文件c:\foo\images\new.gif
,即使这些类位于jar文件d:\Java\myApp.jar
或目录e:\projects\myApp\classes
中。 / p>
用作ImageIcon的文件通常捆绑在应用程序的jar文件中,同时包含类文件,并由类加载器加载。如果将文件存储在包com.foo.bar
下,则应使用
new ImageIcon(MyClass.class.getResource("/com/foo/bar/new.gif"));