无法在java中检测图像

时间:2013-09-13 13:09:47

标签: java eclipse swing path imageicon

我想制作一个简单的Widget,它有一个可以改变图片的组合框。 我在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);
    }
}

我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:2)

如你所描述的那样问题,相对路径应该是./src/test/f.png(eclipse从相对$project_loc启动应用程序,这是项目的根文件夹)

请考虑使用资源文件夹,例如。 src/resources/用于您的图片/其他资源。

答案 1 :(得分:1)

您使用相对路径"f.png",该类位于包(目录)first中。所以使用"/test/f.png"(并确保一切都是区分大小的。)

答案 2 :(得分:0)

我已经完成了这个并且它使我的代码写了

我应该做的唯一事情是:

将我的图片放入

project_name/bin/test

我的.class文件在哪里 之后它可以识别来源