package swing;
import java.awt.EventQueue;
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseAdapter;
import javax.swing.border.EmptyBorder;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.UIManager;
public class Shrewmouse extends JFrame implements Runnable
{
//private JPanel contentPane;
private JLabel[] mouses;
private ImageIcon imgMouse;
public static void main(String[] args) //启动程序
{
/*
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Throwable e)
{
e.printStackTrace();
}
*/
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
Shrewmouse frame = new Shrewmouse();
frame.setVisible(true);
new Thread(frame).start();
//Thread thread = new Thread(frame);
//thread.start();
}catch(Exception e)
{
e.printStackTrace();
}
}
});
}
public Shrewmouse()
{
super();
setResizable(false);
//setBounds(100, 100, 550, 500);
setTitle("打地鼠小游戏");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
ImageIcon img = new ImageIcon(getClass().getResource("/mouseImage/background.jpg")); //背景图片
imgMouse = new ImageIcon(getClass().getResource("/mouseImage/mouse.png")); //地鼠图片
mouses = new JLabel[6];
for(int i = 0; i < 6; i++)
{
mouses[i] = new JLabel();
mouses[i].setSize(imgMouse.getIconWidth(), img.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
{
System.out.println("run is running!");
Thread.sleep(1000);
int index = (int)(Math.random() * 6); //int必须要扩括号
System.out.println("index=" + index);
if(mouses[index].getIcon() == null)
{
System.out.println("index");
mouses[index].setIcon(imgMouse);
}
}catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
报错那么多:
java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at swing.Shrewmouse.<init>(Shrewmouse.java:63)
at swing.Shrewmouse$1.run(Shrewmouse.java:40)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatc
hEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
求大神们帮帮忙啊,小弟急啊!不胜感激~