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. MST(prim)+树形dp-hdu-4756-Install Air Conditioning

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4756 题目意思: n-1个宿舍,1个供电站,n个位置每两个位置都有边相连,其中有一条边不能连,求n个 ...

  2. IP 碎片重组

    IP 碎片重组 内核中的IP重组函数. struct sk_buff * ip_defrag(struct sk_buff * skb, u32 user) { ...... //如果内核范围超出限制 ...

  3. 【HDOJ】1753 大明A+B

    注意数据格式,可以是整数,并且注意输出最简化浮点数. #include <stdio.h> #include <string.h> #define MAXNUM 420 cha ...

  4. js前台与后台数据交互-前台调后台

    转自:http://blog.csdn.net/wang379275614/article/details/17033981   网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...

  5. [Entity Framework]获取部分字段的查询

    using (var ObjectContext = new AgentSystemEntities()) { DateTime dt = new DateTime(1997, 1, 1); stri ...

  6. DATE_FORMAT()(转)

    mysql中DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果串. 也可用DATE_FORMAT( ) 来格式化DATE 或DAT ...

  7. Oracle错误

    System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本 这个是我页面报的错误,请帮解答 在错误出现的时候我第一时间现在了一个oracle客户端软件,然 ...

  8. KEIL、uVision、RealView、MDK、KEIL C51区别比较

    KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251 从接触MCS-51单片机开始,我们就知道有一个 ...

  9. MyEclipse中Web项目的发布和运行

    1.右键对应项目的名称:MyEclipse|Add and Remove Project Deployments... 2.点击Add按钮,选择Tomcat7.x,Deploy type选择Explo ...

  10. 非常实用的PHP常用函数汇总

    这篇文章主要介绍了非常实用的PHP常用函数,汇总了加密解密.字符串操作.文件操作.SQL注入等函数的实例与用法说明,在PHP项目开发中非常具有实用价值,需要的朋友可以参考下 本文实例总结了一些在php ...