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(集成:综 ...