最近看了个做java打地鼠游戏的视频,我在视频的代码中加了一些小改变。大体还是视频里面的,代码如下:
dishu_1.java:
package PokeMole;
import javax.swing.JFrame;
public class dishu_1 extends JFrame{
/**
* @param args
*/
public dishu_1() {
// TODO Auto-generated constructor stub
dishu_2 b=new dishu_2();
JFrame a=new JFrame();
a.setTitle("打地鼠游戏");
a.setBounds(200, 200, 500, 700);
a.setVisible(true);
a.add(b);
b.startRun();
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new dishu_1();
}
}
dishu_2.java:
package PokeMole;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class dishu_2 extends JLabel {
int num=0;
private JLabel back;
private JLabel jtf;
private ImageIcon imgMouse;
JLabel[] mouses=new JLabel[9];
public dishu_2() {
// TODO Auto-generated constructor stub
back=new JLabel();
ImageIcon icon=new ImageIcon("img/dishubeijing.jpg");
icon.setImage(icon.getImage().getScaledInstance(500,700, Image.SCALE_DEFAULT));
imgMouse=new ImageIcon("img/dishu.jpg");
imgMouse.setImage(imgMouse.getImage().getScaledInstance(50,50, Image.SCALE_DEFAULT));
this.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefaultToolkit().getImage("img/chui.jpg"), new Point(), "hh"));//鼠标的图片
back.setIcon(icon);
back.setBounds(0, 0, 500, 700);
jtf=new JLabel();
jtf.setBounds(300, 25, 220, 25);
jtf.setFont(new Font("",20,20));
jtf.setForeground(Color.red);
jtf.setText("您的得分是: 分");
back.add(jtf);
// JLabel v=new JLabel();
// v.setIcon(imgMouse);
// v.setBounds(50, 50, 100, 100);
for (int i = 0; i < mouses.length; i++) {
mouses[i]=new JLabel();
mouses[i].setSize(imgMouse.getIconWidth(), imgMouse.getIconHeight());
//mouses[i].setIcon(imgMouse);
mouses[i].addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
Object ob=e.getSource();
if(ob instanceof JLabel){
JLabel label=(JLabel)ob;
if(label.getIcon()!=null){
num++;
jtf.setText("你的得分是:"+num+"分");
}
label.setIcon(null);
}
};
}
);
add(mouses[i]);
}
mouses[0].setLocation(100, 200);
mouses[1].setLocation(220, 200);
mouses[2].setLocation(340, 200);
mouses[3].setLocation(80, 340);
mouses[4].setLocation(220, 340);
mouses[5].setLocation(340, 340);
mouses[6].setLocation(70, 480);
mouses[7].setLocation(210, 480);
mouses[8].setLocation(350, 480);
add(back);
}
public void startRun(){
new Thread(){
public void run(){
Random rd = new Random();
while(true){
try {
Thread.sleep(500);
int index =rd.nextInt(9);
if(mouses[index].getIcon()==null){
mouses[index].setIcon(imgMouse);
Thread.sleep(800);
if(mouses[index].isShowing()){
mouses[index].setIcon(null);
}
}
} catch (Exception e) {
}
//repaint();
}
}
}.start();
}
}
结果如图: