import java.applet.Applet;
import java.applet.AudioClip;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import javax.swing.border.TitledBorder;
import java.awt.Color;
private static final long serialVersionUID = 1L;
private JPanel jContentPane
= null;
private int score=0;
private boolean threadstarted=false,findhero=false;
private Score[]sc;
private JMenuItem mstart,mstop,mresume,mexit
;
private AudioClip clip1,clip2
; // @jve:decl-index=0:
/**
* This is the default constructor
*/
int score;
Score(){
id="匿名" ;
score=0;
}
}
public DDS() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
setJMenuBar(menuBar);
JMenu mcontrol
= new JMenu("\u6E38\u620F\u63A7\u5236");
menuBar.add(mcontrol);
if(threadstarted==false) {
t.start();
}
else {
t.resume();
}
timer.start();
mstart.setEnabled(false);
mstop.setEnabled(true);
mresume.setEnabled(true);
progressBar.setString(null);
}
});
mcontrol.add(mstart);
mstop.setEnabled(false);
t.suspend();
timer.stop();
mstop.setEnabled(false);
mresume.setEnabled(true);
}
});
mcontrol.add(mstop);
mresume.setEnabled(false);
t.resume();
timer.start();
mresume.setEnabled(false);
mstop.setEnabled(true);
}
});
mcontrol.add(mresume);
}
});
mcontrol.add(mexit);
JMenu menu
= new JMenu("\u80CC\u666F\u97F3\u4E50");
menuBar.add(menu);
clip1.loop();
mon.setEnabled(false);
moff.setEnabled(true);
}
});
menu.add(mon);
moff.setEnabled(false);
clip1.stop();
mon.setEnabled(true);
moff.setEnabled(false);
}
});
menu.add(moff);
menuBar.add(mhelp);
Heros heros=new Heros();
for(int i=0;i<DDS.this.sc.length;i++) {
heros.taheros.append("英雄大名:"+sc[i].id+"得分:"+sc[i].score+"\n");
}
heros.setModal(true);
heros.show();
}
});
mhelp.add(mhero);
this.setContentPane(getJContentPane());
this.setTitle("打地鼠游戏");
this.
setBounds(new Rectangle(300,
100,
511,
546));
this.setVisible(true);
lm[0]=lm1;
lm[1]=lm2;
lm[2]=lm3;
lm[3]=lm4;
lm[4]=lm5;
lm[5]=lm6;
lm[6]=lm7;
lm[7]=lm8;
for(int i=0;i<lm.length;i++){
lm[i].setVisible(false);
lm[i].addMouseListener(this);
}
lscore.setText("你的得分是0分");
timer
=new Timer(1000,
this);
//t.start();
c1
=Toolkit.
getDefaultToolkit().
createCustomCursor(Toolkit.
getDefaultToolkit().
getImage(this.
getClass().
getResource("icon.png")),
new Point(20,
20),
"c1");
c2
=Toolkit.
getDefaultToolkit().
createCustomCursor(Toolkit.
getDefaultToolkit().
getImage(this.
getClass().
getResource("icon1.png")),
new Point(20,
20),
"c2");
clip1
=Applet.
newAudioClip(this.
getClass().
getResource("背景音乐.wav"));
clip2
=Applet.
newAudioClip(this.
getClass().
getResource("响声.wav"));
file
=new File(".//hero.data");
if(!file.exists()) {
try {
file.createNewFile();
sc=new Score[6];
for(int i=0;i<sc.length;i++)
sc[i]=new Score();
oos.writeObject(sc);
oos.close();
os.close();
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else {
try {
sc=(Score[])ois.readObject();
//for(int i=0;i<sc.length;i++)
// System.out.println(sc[i].id+":"+sc[i].score);
ois.close();
is.close();
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane
() {
if (jContentPane == null) {
lscore.
setBounds(new Rectangle(281,
35,
222,
32));
lscore.setText("");
lm8.
setBounds(new Rectangle(364,
340,
62,
78));
lm8.setText("");
lm8.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm7.
setBounds(new Rectangle(100,
303,
67,
82));
lm7.setText("");
lm7.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm6.
setBounds(new Rectangle(237,
384,
74,
78));
lm6.setText("");
lm6.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm5.
setBounds(new Rectangle(191,
324,
68,
89));
lm5.setText("");
lm5.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm4.
setBounds(new Rectangle(389,
268,
60,
87));
lm4.setText("");
lm4.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm3.
setBounds(new Rectangle(251,
279,
64,
80));
lm3.setText("");
lm3.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm2.
setBounds(new Rectangle(337,
226,
65,
75));
lm2.setText("");
lm2.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm1.
setBounds(new Rectangle(240,
228,
60,
86));
lm1.
setIcon(new ImageIcon(getClass
().
getResource("/img/mouse.png")));
lm1.setText("");
jContentPane.setLayout(null);
jContentPane.add(lm1, null);
jContentPane.add(lm2, null);
jContentPane.add(lm3, null);
jContentPane.add(lm4, null);
jContentPane.add(lm5, null);
jContentPane.add(lm6, null);
jContentPane.add(lm7, null);
jContentPane.add(lm8, null);
jContentPane.add(lscore, null);
progressBar.setMaximum(10);
progressBar.setStringPainted(true);
progressBar.setBounds(28, 53, 171, 55);
jContentPane.add(progressBar);
lback.setText("");
lback.
setLocation(new Point(0,
-1));
lback.
setIcon(new ImageIcon(getClass
().
getResource("/img/background.jpg")));
}
return jContentPane;
}
public void run() {
// TODO 自动生成方法存根
while(true){
try {
int index
=(int)(Math.
random()*8);
if(!lm[index].isShowing()){
lm[index].setVisible(true);
lm[index].setVisible(false);
}
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
// TODO 自动生成方法存根);
if(l.isShowing()){
t.interrupt();
l.setVisible(false);
lscore.setText("你的得分是"+(++score)+"分");
}
clip2.play();
}
// TODO 自动生成方法存根
}
// TODO 自动生成方法存根
}
// TODO 自动生成方法存根
this.setCursor(c2);
}
// TODO 自动生成方法存根
this.setCursor(c1);
}
@Override
// TODO Auto-generated method stub
int value=progressBar.getValue();
//System.out.println(value);
if(value<10)
this.progressBar.setValue(++value);
else {
mstart.setEnabled(true);
progressBar.setValue(0);
progressBar.setString("游戏结束了!");
timer.stop();
t.suspend();
score=0;
threadstarted=true;
int heroid=0;
for(int i=0;i<sc.length;i++) {
if(score>sc[i].score) {
findhero=true;
heroid=1;
for(int j=sc.length-1;j>i;j--) {
sc[j].id=sc[j-1].id;
sc[j].score=sc[j-1].score;
}
sc[i].id="匿名";
sc[i].score=score;
break;
}
}
if(findhero) {
for(int j=sc.length-1;j>heroid;j--) {
sc[j].id=sc[j-1].id;
sc[j].score=sc[j-1].score;
}
sc[heroid].id="匿名";
sc[heroid].score=score;
//if(heroname!=null) sc[heroid].id=heroname;
//sc[heroid].id=str;
try {
oos.writeObject(sc);
oos.close();
os.close();
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
} // @jve:decl-index=0:visual-constraint="10,10"
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
public class Heros
extends JDialog {
/**
* Launch the application.
*/
/* public static void main(String[] args) {
try {
Heros dialog = new Heros();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}*/
/**
* Create the dialog.
*/
public Heros() {
setTitle("\u82F1\u96C4\u699C");
setBounds(100, 100, 549, 430);
contentPanel.setLayout(null);
{
taheros.setBounds(0, 0, 527, 335);
contentPanel.add(taheros);
}
{
{
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
}
}
}
public class PlayMouse {
/**
* @param args
*/
public static void main
(String[] args
) {
// TODO 自动生成方法存根
new DDS();
}
}