我在将 ImageIcon 添加到 JMenuItem 时遇到问题。我按照教程中写的那样添加了它,但没有用。我用谷歌查了一下有什么问题,但没有找到。 这是代码:
File.add(new JMenuItem("New", new ImageIcon("images/new.gif")));
我认为问题可能是图标与 .class 或 .java 文件不在同一文件夹中,因此我已替换它 - 但仍然无法正常工作。 菜单只显示文字.. 我应该做什么才能让我工作?
最佳答案
您正在传递一个相对文件名作为参数。该文件名与类无关。它是相对于 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"));
关于java - 为什么 ImageIcon 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377419/