java青蛙_JAVA-小青蛙跳石头游戏

1 /*

2 * Main.java3 **/

4

5 importjava.awt.Color;6 importjava.awt.Graphics;7 importjava.awt.event.KeyAdapter;8 importjava.awt.event.KeyEvent;9 importjava.awt.event.MouseAdapter;10 importjava.awt.event.MouseEvent;11 importjava.awt.event.WindowAdapter;12 importjava.awt.event.WindowEvent;13 importjava.text.DateFormat;14 importjava.text.ParseException;15 importjava.text.SimpleDateFormat;16 importjava.util.Date;17

18 importjavax.swing.JFrame;19

20 public class Main extendsJFrame {21 /**

22 * 过关移动顺序 3、4、5、3、2、1 4、5、6、3、2、1 5、6、123 */

24 public static final int GAME_WIDTH = 420; //界面宽

25 public static final int GAME_HEIGTH = 150; //界面高

26 public static final int GAME_X = 400; //界面位置

27 public static final int GAME_Y = 250;28 public DateFormat format = new SimpleDateFormat("mm:ss"); //时间格式

29 public String StartDate = new String(); //起始时间

30 public String EndtDate = new String(); //当前时间

31 public longtimes;32 Frog f = new Frog(this); //青蛙类

33

34 public static voidmain(String[] args) {35 Main m = newMain();36 m.lauchFrame(); //初始化界面

37 }38

39 private voidlauchFrame() {40 //TODO Auto-generated method stub

41 Date date = newDate();42 StartDate =format.format(date);43 EndtDate =format.format(date);44 this.setLocation(GAME_X, GAME_Y); //窗口初始坐标点

45 this.setSize(GAME_WIDTH, GAME_HEIGTH); //窗口初始大小

46 this.setTitle("Frog"); //窗口名称

47 /*窗口监听*/

48 this.addWindowListener(newWindowAdapter() {49 @Override50 /*点退出叉之后运行*/

51 public voidwindowClosing(WindowEvent e) {52 //TODO Auto-generated method stub

53 System.exit(0); //退出

54 }55 });56 this.addMouseListener(new Mouse()); //添加鼠标监听事件

57 this.addKeyListener(new Key()); //添加键盘监听事件

58 this.setVisible(true); //设置窗口显现

59 this.setResizable(false); //设置窗口不可改变大小

60 this.getContentPane().setBackground(Color.white); //界面背景白色

61 new Thread(new PaintThread()).start(); //开始运行PaintThread类run->repaint->paint

62 }63

64 public voidpaint(Graphics g) {65 super.paint(g);66 for (int i = 1; i < 8; i++) {67 g.drawRect(i * 50 - 5, 45, 30, 30);//画出方框

68 }69 f.Draw(g); //画方块

70 /*显示时间以及提示说明*/

71 try{72 times = format.parse(EndtDate).getTime() -format.parse(StartDate).getTime();73 g.drawString("时间:" + format.format(new Date(times)).toString(), 250, 40);74 } catch(ParseException e) {75 //TODO Auto-generated catch block

76 e.printStackTrace();77 }78 g.drawString("F2键重新开始", 100, 40);79 g.drawString("规则:1、点击方块跳动", 85, 100);80 g.drawString("2、方块不能向后跳,最多只能跳过1个方块", 120, 115);81 g.drawString("3、使左右两边方块交换位置即可胜利", 120, 130);82 }83

84 /*线程主要做时间和界面刷新*/

85 private class PaintThread implementsRunnable {86

87 @Override88 public voidrun() {89 //TODO Auto-generated method stub

90 while (true) {91 repaint(); //刷新界面

92 Date date = newDate();93 EndtDate = format.format(date); //重新获取当前时间

94 try{95 Thread.sleep(1000); //时隔1s

96 } catch(Exception e) {97 e.printStackTrace();98 }99 }100 }101 }102

103 /*键盘监听;调用方块类的键盘释放监听*/

104 public class Key extendsKeyAdapter {105

106 @Override107 public voidkeyReleased(KeyEvent e) {108 //TODO Auto-generated method stub

109 super.keyReleased(e);110 f.keyReleased(e);111 }112

113 }114

115 /*鼠标监听;调用方块类的鼠标单击监听*/

116 public class Mouse extendsMouseAdapter {117

118 @Override119 public voidmouseClicked(MouseEvent e) {120 //TODO Auto-generated method stub

121 super.mouseClicked(e);122 f.mouseClicked(e);123 }124 }125 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值