【发布时间】:2013-07-15 21:12:55
【问题描述】:
我一直在互联网上搜索,试图找出如何将图标图像添加到我的 JFrame,但我不断收到错误消息。我知道堆栈溢出时有人问过这个问题,但解决方案对我不起作用。这是我的代码:
ImageIcon imageIcon = new ImageIcon("src/slime.png");
ImageIcon image = new ImageIcon("src/slime.gif");
JLabel label = new JLabel(image, JLabel.CENTER);
label.setAlignmentX(0);
label.setAlignmentY(0);
label.setIcon(image);
JFrame window = new JFrame("Slime");
window.setVisible(true);
window.setSize(250, 200);
window.setResizable(false);
window.setIconImage(newImageIcon(getClass().getResource("src/slime.png")).getImage());
window.add(label);
这是我得到的错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at MainJFrame.<init>(MainJFrame.java:39)
at MainJFrame$1.run(MainJFrame.java:18)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
非常感谢您的帮助。注意:我试过 window.setIconImage(imageIcon.getImage());但这不起作用,并且我打印在屏幕上的其他图像消失了。
【问题讨论】:
-
出现什么错误?
-
你能把你的错误粘贴在这里吗?
-
好吧,当我尝试 window.setIconImage(ImageIO.read("src/slime.png"));我收到错误 ImageIO 类型中的方法 read(File) 不适用于参数 (String)
-
如果您还没有阅读过,请阅读底部的说明。 :)
-
好吧,setIconImage(ImageIO.read("..."));您所指的不在您的帖子中;实际上,您调用 setIconImage 时根本没有任何参数。网上有很多(很多)示例说明如何执行此操作,我不知道为您提供更多随机示例是否会有所帮助。如果您想知道自己做错了什么,请将代码减少到显示问题所需的最低限度,并告诉我们运行它时会发生什么,以及您在该代码中尝试了什么,而不仅仅是我们随后拥有的随机语句猜测一下。
标签: java swing jframe jpanel imageicon