3

我正在使用 eclipse,我想将图像添加到我的 GUI 的标签或徽标上。

我希望它看起来像这样!

http://imageshack.us/a/img593/4957/skeletancalcimage.png

我把它上传到网上是因为我没有 10 声望。

名称很酷的程序)是图像

 import java.awt.*;
    import javax.swing.*;
    import javax.swing.JFrame;

    public class MainClass extends JFrame{ // super class JFrame

        // Kind of a tutorial for creating GUI's in java
        private JLabel label;
        private JLabel label1;
        private JButton button;
        private JTextField textfeild;
        private ImageIcon image1; // image for my logo

        public MainClass () {
            setLayout (new FlowLayout());

            image1 = new ImageIcon (getClass ().getResource ("logo.gif")); // declares image

            label = new JLabel ("This is the label");
            add (label);

            label1 = new JLabel (image1); // adds image
            add (label1);

            textfeild = new JTextField (15);
            add (textfeild);

            button = new JButton ("Click");
            add (button);

        }

        public static void main(String[] args) {        

            MainClass gui = new MainClass ();


            gui.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); // creates window
            gui.setSize (300,300);
            gui.setVisible (true);
            gui.pack ();
            gui.setTitle ("Title");

        }

    }

程序编译但不运行。给我

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at JonsCalc.<init>(JonsCalc.java:18)
    at JonsCalc.main(JonsCalc.java:38)
4

4 回答 4

1

这段代码getClass().getResource ("logo.gif")意味着应该从与您的类相同的位置加载图像MainClass。检查您的图像是否与 MainClass 在同一个包中。如果您使用 Eclipse,则将图像文件放入包中的src文件夹中,它会bin自动复制到。

于 2012-12-23T23:50:42.643 回答
1

我建议您专门为您的图像/图标创建一个包,然后在那里创建一个名为“ImageLoader”或任何您想要的加载器类。然后,您可以使用此代码...

new ImageLoader().getClass().getResource("NAME_OF_IMAGE"));
于 2012-12-24T01:47:57.907 回答
0

右键单击您的班级,然后转到新班级。单击新的源文件夹。最后将您的图像移动到该文件夹​​中。现在您可以使用该代码。

于 2013-06-09T04:15:20.100 回答
0

如果您使用的是 Eclipse,请将您的图像复制到您的和项目的bin文件夹中。然后只需键入 image1 = new ImageIcon(this.getClass().getResource("filename.filetype"));

于 2016-10-17T00:02:26.703 回答