




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
import java.awt.Cursor;import java.awt.Image;import java.awt.Point;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.Random;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.Timer;public class HitMouse extends JFrame implements ActionListener,MouseListenerboolean isOver=false;/设置标记,游戏是否结束private String dir=./images/;/图片目录,当前工程下JLabel jlbMouse;/地鼠Timer timer;/时间定时器Random random;/随机数对象,即生成地鼠的位置int delay=1100;/延迟时间Toolkit tk;Image image;Cursor myCursor;JLabel showNum,currentGrade,hitNum;int showNumber=0,hitNumber=0,currentGrades=1;public HitMouse()super(打地鼠);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(449, 395);this.setLocationRelativeTo(null);/设置窗口在屏幕中心setbackground();/设置背景this.getContentPane().setLayout(null);/设置框架布局模式为空,只有这样,才能知道图片的真正位置/设置鼠标为锤子图片tk = Toolkit.getDefaultToolkit();image = tk.createImage(dir+chui1.png);myCursor = tk.createCustomCursor(image, new Point(10,10), xxx);this.setCursor(myCursor);setMessage();/设置一些提示信息/在背景图片的基础上设置地鼠图片ImageIcon imageMouse = new ImageIcon(dir+dishu.png);jlbMouse = new JLabel(imageMouse);jlbMouse.setSize(80,80);this.getContentPane().add(jlbMouse);jlbMouse.setVisible(false);jlbMouse.addMouseListener(this);/添加鼠标监听/定时器timer = new Timer(delay,this);random = new Random();timer.start();addMenu();/添加菜单this.setResizable(false);/设置窗口大小不能改变this.setVisible(true);private void addMenu() JMenuBar menubar = new JMenuBar();this.setJMenuBar(menubar);JMenu game = new JMenu(游戏);JMenuItem jitemNew = new JMenuItem(新游戏);jitemNew.setActionCommand(new);jitemNew.addActionListener(this);JMenuItem jitemPause = new JMenuItem(暂停);jitemPause.setActionCommand(pause);jitemPause.addActionListener(this);JMenuItem jitemExit = new JMenuItem(退出);jitemExit.setActionCommand(exit);jitemExit.addActionListener(this);game.add(jitemNew);game.add(jitemPause);game.addSeparator();/菜单里设置分隔线game.add(jitemExit);menubar.add(game);private void setbackground() (JPanel)(this.getContentPane().setOpaque(false);/如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。ImageIcon bgImage = new ImageIcon(images/beijing.jpg);JLabel bgLabel = new JLabel(bgImage);bgLabel.setBounds(0, 25, bgImage.getIconWidth(), bgImage.getIconHeight();this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE);/设置背景图片的层次最低private void setMessage() ImageIcon showNumb = new ImageIcon(dir+chuxiancishu.png);JLabel showLabel = new JLabel(showNumb);showLabel.setBounds(8, 8, 92, 80);this.getContentPane().add(showLabel);showNum = new JLabel(0);showNum.setBounds(110, 8, 92, 80);this.getContentPane().add(showNum);ImageIcon hitNumb = new ImageIcon(dir+chuxiancishu.png);JLabel hitLabel = new JLabel(hitNumb);hitLabel.setBounds(148, 8, 92, 80);this.getContentPane().add(hitLabel);hitNum = new JLabel(0);hitNum.setBounds(251, 8, 92, 80);this.getContentPane().add(hitNum);ImageIcon grade = new ImageIcon(dir+dangqiandengji.png);JLabel gradeLabel = new JLabel(grade);gradeLabel.setBounds(288, 8, 92, 80);this.getContentPane().add(gradeLabel);currentGrade = new JLabel(1);currentGrade.setBounds(391, 8, 92, 80);this.getContentPane().add(currentGrade);public static void main(String args) new HitMouse();public void actionPerformed(ActionEvent e) /对菜单项注册事件监听if(e.getSource() instanceof JMenuItem)menuItemFun(e);int ran=random.nextInt(9);/随机生成一个09(不包括9)的随机数ImageIcon imageMouse = new ImageIcon(dir+dishu.png);/保证每次随机生成的地鼠图片都是为没被打时的图片jlbMouse.setIcon(imageMouse);switch(ran)case 0:jlbMouse.setLocation(55, 63);break;case 1:jlbMouse.setLocation(321, 204);break;case 2:jlbMouse.setLocation(184, 204);break;case 3:jlbMouse.setLocation(47, 203);break;case 4:jlbMouse.setLocation(297, 133);break;case 5:jlbMouse.setLocation(161, 133);break;case 6:jlbMouse.setLocation(21, 133);break;case 7:jlbMouse.setLocation(310, 63);break;case 8:jlbMouse.setLocation(185, 63);break;jlbMouse.setVisible(true);showNumber+;showNum.setText(+showNumber);if( !gamePlan() )/判断游戏是否结束,并显示游戏进程timer.stop();/监听菜单功能功能private void menuItemFun(ActionEvent e) if (e.getActionCommand().equalsIgnoreCase(new) /新游戏timer.stop();showNumber=0;hitNumber=0;currentGrades=1;delay=1000;isOver=false;showNum.setText(+showNumber);hitNum.setText(+hitNumber);currentGrade.setText(+currentGrades);timer = new Timer(delay,this);timer.start();if (e.getActionCommand().equalsIgnoreCase(exit) /退出System.exit(EXIT_ON_CLOSE);if (e.getActionCommand().equalsIgnoreCase(pause) /暂停timer.stop();JOptionPane.showMessageDialog(this, 继续请按“确定”);timer.start();private boolean gamePlan() if(showNumber-hitNumber 8)JOptionPane.showMessageDialog(this, Game Over !);isOver=true;return false;if(hitNumber 5)hitNumber=0;showNumber=0;currentGrades+;if(delay100)delay-=50;else if(delay=500)delay=500;timer.setDelay(delay);hitNum.setText(+hitNumber);showNum.setText(+showNumber);currentGrade.setText(+currentGrades);return true;public void mouseClicked(MouseEvent e) public void mousePressed(MouseEvent e) if(isOver)return ;image = tk.createImage(dir+chui2.png);myCursor = tk.createCustomCursor(image, new Point(10,10), xxx);this.setCursor(myCursor);/鼠标按下时,鼠标显示打下去的图片,模拟打的动作/如果打中地鼠,则地鼠换成被打中的图片,模拟地鼠被打if(e.getSource()=jlbMouse)ImageIcon imageIconHit = new ImageIcon(dir+datou.png);jlbMouse.setIcon(imageIconHit);jlbMouse.setVisible(true);hitNumber+;hitNum.setText(+hitN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轮岗实习工作总结
- 亲有过到挞无怨课件
- 检验主管工作总结
- 《诗经·月出》课件
- 研发经理年中工作总结
- 电磁波的辐射讲解
- 竣工环保验收汇报
- 疼痛病人的延续性护理
- 《草房子》课件导读
- 法医临床司法鉴定年终总结
- JG/T 286-2010低温辐射电热膜
- 海南区污水处理项目可行性研究报告
- 机械维修工试题及答案
- 年产30万立方米商砼建设项目环评资料环境影响
- 2025年全国大学生海洋知识竞赛试题及答案(共五套)
- 2025年资源共享授权合同
- 信息安全管理制度
- 社交心理在网络营销中的实战运用
- 2025年少先队应知应会知识考试题库
- 2025年宁波农商发展集团限公司招聘高频重点提升(共500题)附带答案详解
- 蜀道集团招聘笔试
评论
0/150
提交评论