JAVA SE 框架之俄罗斯方块的效果
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 框架之俄罗斯方块的效果的更多相关文章
- Java SE教程
		第0讲 开山篇 读前介绍:本文中如下文本格式是超链接,可以点击跳转 >>超链接<< 我的学习目标:基础要坚如磐石 代码要十份规范 笔记要认真详实 一.java内容介绍 ... 
- Java Security:Java加密框架(JCA)简要说明
		加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以 ... 
- Java Web开发框架Spring+Hibernate整合效果介绍(附源码)
		最近花了一些时间整合了一个SpringMVC+springAOP+spring security+Hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过Java EE,好在有经 ... 
- Java集合框架面试题
		www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ... 
- java集合框架之java HashMap代码解析
		java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ... 
- Java SE 6 新特性: 对脚本语言的支持
		2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ... 
- java se 6在solaris的可观察性特征分析
		java平台标准版(java se)6,代码名为"mustang",是最新的java se发行版本(正在开发中).java se 6源码和二进制代码都可以在www.java ... 
- DynamicMBean(Java SE 6 新特性: JMX 与系统管理)
		Dynamic MBean 是一种在运行时定义其管理接口的 MBean.例如,配置 MBean 可以通过解析 XML 文件来确定它所公开的属性名称和类型. 任何实现 DynamicMBean 接口的类 ... 
- java fork-join框架应用和分析
		http://shmilyaw-hotmail-com.iteye.com/blog/1897636 java fork-join框架应用和分析 博客分类: concurrency multithre ... 
随机推荐
- android原生系统裁剪
			Andriod 4.0.4系统包 Andriod 4.1.1系统包 说明 ApplicationsProvider.apk ApplicationsProvider.apk 应用程序存储. 程序管 ... 
- Electrification Plan(最小生成树)
			http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=50#problem/D 最小生成树模板,注意的是这里有k个发电站,它们不再需要连 ... 
- POJ_2503_Babelfish_(Trie/map)
			描述 http://poj.org/problem?id=2503 给出一个字典,求翻译,翻译不了输出eh. Babelfish Time Limit: 3000MS Memory Limit: ... 
- [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
			转自:http://www.cnblogs.com/zhili/archive/2012/09/23/2666987.html 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例 ... 
- jQuery Ajax 全解析
			转自:http://www.cnblogs.com/qleelulu/archive/2008/04/21/1163021.html 本文地址: jQuery Ajax 全解析 本文作者:QLeelu ... 
- HDU-1019                              Least Common Multiple
			http://acm.hdu.edu.cn/showproblem.php?pid=1019 Least Common Multiple Time Limit: 2000/1000 MS (Java/ ... 
- [ZETCODE]wxWidgets教程九:组件专题2
			本教程原文链接:http://zetcode.com/gui/wxwidgets/widgetsII/ 翻译:瓶哥 日期:2013年12月15日星期日 邮箱:414236069@qq.com 主页:h ... 
- C语言  处理文件
			刚学习C语言不久,运用C语言处理各种文件.这里列出,处理文件所需的大部分函数,已经整理的笔记,使用的注意事项. 
- MongDB主从复制、复制集
			主从复制比较简单,指定master.slave即可,其中master可写可读.slave只能读不能写.向master插入数据时,mongodb会自动将数据复制到slave节点.这样做的好处是读写分离, ... 
- Package org.xml.sax Description
			This package provides the core SAX APIs. Some SAX1 APIs are deprecated to encourage integration(集成:综 ... 
