A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写了个打地鼠小程序,运行报空指针异常。怎么也找不出哪里出错,求大神帮帮找一下,搞了一晚上了。
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Shrewmouse extends JFrame implements Runnable
{
        private static final long serialVersionUID = 8752899717443325480L;
        private JLabel[] mouses;
        private ImageIcon imgMouse;

        public static void main(String args[])
        {
                EventQueue.invokeLater(new Runnable()
                {
                        public void run()
                        {
                                try
                                {
                                        Shrewmouse frame = new Shrewmouse();
                                        frame.setVisible(true);
                                        new Thread(frame).start();
                                } catch (Exception e)
                                {
                                        e.printStackTrace();
                                }
                        }
                });
        }

        public Shrewmouse()
        {
                super();
                setResizable(false);
                getContentPane().setLayout(null);
                setTitle("打地鼠游戏");
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                ImageIcon img = new ImageIcon(getClass().getResource("C:/background.jpg"));
                imgMouse = new ImageIcon(getClass().getResource("C:/mouse.png"));
                mouses = new JLabel[6];
                for (int i = 0; i < 6; i++)
                {
                        mouses[i] = new JLabel();
                        mouses[i].setSize(imgMouse.getIconWidth(), imgMouse.getIconHeight());
                        mouses[i].addMouseListener(new MouseAdapter()
                        {

                                @Override
                                public void mouseClicked(MouseEvent e)
                                {
                                        Object source = e.getSource();
                                        if (source instanceof JLabel)
                                        {
                                                JLabel mouse = (JLabel) source;
                                                mouse.setIcon(null);
                                        }
                                }
                        });
                        getContentPane().add(mouses[i]);
                }

                mouses[0].setLocation(253, 300);
                mouses[1].setLocation(333, 250);
                mouses[2].setLocation(388, 296);
                mouses[3].setLocation(362, 364);
                mouses[4].setLocation(189, 353);
                mouses[5].setLocation(240, 409);

                final JLabel backLabel = new JLabel();
                backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
                setBounds(100, 100, img.getIconWidth(), img.getIconHeight() + 30);
                backLabel.setIcon(img);
                getContentPane().add(backLabel);
        }

        public void run()
        {
                while (true)
                {
                        try
                        {
                                Thread.sleep(1000);
                                int index = (int) (Math.random() * 6);
                                if (mouses[index].getIcon() == null)
                                        mouses[index].setIcon(imgMouse);
                        } catch (InterruptedException e)
                        {
                                e.printStackTrace();
                        }
                }
        }
}

评分

参与人数 1黑马币 +6 收起 理由
齐弦 + 6 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马