我想制作一个简单的小部件,它有一个可以更改图片的组合框。 我在 src/test 中有 2 张 png 图片(在我的 .java 文件旁边)
当我运行我的程序时,我收到此异常:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at first.gui.<init>(gui.java:11)
at first.Main.main(Main.java:11)
这是我的代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class gui extends JFrame {
JLabel lb = new JLabel();
Icon[] pics = {
new ImageIcon(getClass().getResource("f.png")),
new ImageIcon(getClass().getResource("i.png"))
};
String[] str = {
"f.png", "i.png"
};
JComboBox box = new JComboBox(str);
public gui() {
super("title");
setLayout(new FlowLayout());
box.addItemListener(
new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED)
lb.setIcon(pics[box.getSelectedIndex()]);
}
});
add(box);
}
}
我应该怎么做才能解决这个问题?
最佳答案
根据您描述的问题,相对路径应该是 ./src/test/f.png
(eclipse 从相对 $project_loc
启动应用程序,即您项目的根文件夹)
考虑使用资源文件夹,例如。 src/resources/
或 lib/
用于您的图像/其他资源。
关于java - java中无法检测到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787148/