2

我在将 ImageIcon 添加到 JMenuItem 时遇到问题。我添加了它,就像它在教程中写的一样,但它不起作用。我在谷歌上检查了有什么问题,但没有找到。这是代码:

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

我认为问题可能是该图标与 .class 或 .java 文件不在同一个文件夹中,因此我已将其替换 - 但仍然无法正常工作。菜单只显示文本。我应该怎么做才能让我工作?

4

1 回答 1

4

您将相对文件名作为参数传递。此文件名与类无关。它相对于 JVM 的当前目录。以及当前目录(如果从其启动 java 的目录)。所以如果你启动程序c:\foo,它会寻找文件c:\foo\images\new.gif,即使类在 jar 文件d:\Java\myApp.jar或目录中e:\projects\myApp\classes

用作 ImageIcon 的文件通常与类文件一起捆绑在应用程序的 jar 文件中,并由类加载器加载。如果您将文件存储在包下com.foo.bar,那么您应该使用

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