Mygame

package com.sun.c;

import java.awt.event.KeyListener;

import com.sun.v.MyJpanel;
import com.sun.v.Myjframe; public class Mygame { public Mygame() {
// TODO Auto-generated constructor stub
} public static void main(String[] args) {
// TODO Auto-generated method stub
Myjframe jframe = new Myjframe();
MyJpanel panel = new MyJpanel(); jframe.add(panel);
jframe.addKeyListener(panel);
} }
Myjframe
package com.sun.v;

import javax.swing.JFileChooser;
import javax.swing.JFrame; /*
* 这里采用MVC的设计模式,讲逻辑和页面分开,
*/
public class Myjframe extends JFrame{ public Myjframe(){ this.setTitle("myworld");
this.setVisible(true);
this.setSize(400,400);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
} }

MyJpanel

package com.sun.v;

import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import javax.swing.JPanel; import com.sun.m.Dog; public class MyJpanel extends JPanel implements KeyListener,Runnable{ public MyJpanel() {
//MyJpanel jp = new MyJpanel();
Thread td = new Thread(this);
td.start();
} Dog dog = new Dog(20,20,2); public void paint(Graphics g){
super.paint(g);
g.draw3DRect(dog.x, dog.y,20 ,20, false);
} @Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub } @Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
//System.out.println("sunzhiyan");
switch (e.getKeyCode()){
case KeyEvent.VK_W:
dog.direct = 0;
dog.move(dog.direct);
break;
case KeyEvent.VK_D:
dog.direct = 1;
dog.move(dog.direct);
break;
case KeyEvent.VK_S:
dog.direct = 2;
dog.move(dog.direct);
break;
case KeyEvent.VK_A:
dog.direct = 3;
dog.move(dog.direct);
break;
} this.repaint();
} @Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub } @Override
public void run() {
// TODO Auto-generated method stub
while(true){
try {
Thread.sleep(1000);
//System.out.println("我被调用了");
dog.direct = 2;
dog.move(dog.direct);
this.repaint();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } } }

Dog


 package com.sun.m;

 public class Dog {
public int x;
public int y;
public int direct ;
public Dog(int x,int y, int direct){
this.x = x;
this.y = y;
this.direct = direct;
}
public void move(int direct){
switch (direct){
case 0:
this.y--;
break;
case 1:
this.x++;
break;
case 2:
this.y++;
break;
case 3:
this.x--;
break;
} }
}


JAVA SE 框架之俄罗斯方块的效果的更多相关文章

  1. Java SE教程

    第0讲 开山篇 读前介绍:本文中如下文本格式是超链接,可以点击跳转 >>超链接<< 我的学习目标:基础要坚如磐石   代码要十份规范   笔记要认真详实 一.java内容介绍 ...

  2. Java Security:Java加密框架(JCA)简要说明

    加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以 ...

  3. Java Web开发框架Spring+Hibernate整合效果介绍(附源码)

    最近花了一些时间整合了一个SpringMVC+springAOP+spring security+Hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过Java EE,好在有经 ...

  4. Java集合框架面试题

    www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...

  5. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  6. Java SE 6 新特性: 对脚本语言的支持

    2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...

  7. java se 6在solaris的可观察性特征分析

        java平台标准版(java se)6,代码名为"mustang",是最新的java se发行版本(正在开发中).java se 6源码和二进制代码都可以在www.java ...

  8. DynamicMBean(Java SE 6 新特性: JMX 与系统管理)

    Dynamic MBean 是一种在运行时定义其管理接口的 MBean.例如,配置 MBean 可以通过解析 XML 文件来确定它所公开的属性名称和类型. 任何实现 DynamicMBean 接口的类 ...

  9. java fork-join框架应用和分析

    http://shmilyaw-hotmail-com.iteye.com/blog/1897636 java fork-join框架应用和分析 博客分类: concurrency multithre ...

随机推荐

  1. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...

  2. bzoj3669

    不难想到从小到大穷举a,判断在携带不超过a个B型精灵的情况下最少携带多少个B型精灵这是一个经典的问题,显然要求出最小生成树,树上1到N路径上最大的边即是答案所以我们要动态维护一个最小生成树可以用lin ...

  3. JS 利用数组拼接html字符串

    var cc = []; cc.push('<td colspan=' + fields.length + ' style="padding:10px 5px;border:0;&qu ...

  4. android报错——java.lang.ClassNotFoundException[android]

    E/AndroidRuntime(1875): Caused by: java.lang.ClassNotFoundException:XXXXX    in loader dalvik.system ...

  5. HDU-1686 Oulipo

    学习:重点理解这句话的意思: next[j]会告诉我们从哪里开始匹配     模板题. Oulipo Time Limit: 3000/1000 MS (Java/Others)    Memory ...

  6. 【转】qtp-learn

    1.计算器的例子(手动添加,将结果写到日志文件中) SystemUtil.Run "C:\WINDOWS\system32\calc.exe",""," ...

  7. 监控CPU和内存的使用

    监控CPU和内存的使用: #!/bin/bash #script to capture system statistics outfile=/home/rainbow/test/file.csv da ...

  8. [转]SVN的trunk branch tag

    Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-ta ...

  9. [洛谷U990]传递游戏(90分)

    [题目描述 Description] n个人在做传递物品的游戏,编号为1-n. 游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位:下一个人可以传递给未接过物品的任意一 ...

  10. CUDA编程-(2)其实写个矩阵相乘并不是那么难

    程序代码及图解析: #include <iostream> #include "book.h" __global__ void add( int a, int b, i ...