自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FREEDOM

hello world

  • 博客(35)
  • 资源 (29)
  • 收藏
  • 关注

转载 Dom4解析xml

dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.       对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的

2015-10-29 22:21:31 1055

原创 java 占位符 拼接字符串

(1)先使用 %s (字符串) %d(整形)占好位 String urlFormat2="http://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=%s&current_page=%d"            + "&since_id=&page=%d&pre_page=%d&max_id=&end_id=%d&pagebar=%d&f

2015-10-29 22:01:19 2889

转载 dwr异步上传图片

这里需要用到commons-fileupload-1.2.2和commons-io-2.3This is the web.xml <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi

2015-10-28 21:50:07 1042

原创 spring使用dwr异步通信

spring中使用dwr和普通java类中使用差不多只不过要把dwr配置文件中这样写                        就可以了web.xml配置文件    xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSche

2015-10-28 21:46:41 682

原创 dwr 异步传递对象

注意在导入js文件时必须先导入系统的js,再导入自己的               首先,使用DWR,需配置dwr.xml:[html] view plaincopyxml version="1.0" encoding="UTF-8"?>  >    dwr>    allow>

2015-10-28 21:39:21 538

原创 当ssh不报错也不输出结果时。或者加上一个方法就报错

ssh  java.lang.IllegalStateException: Cannot call sendError() after the response has been committed是因为  在跳转前 response已经关闭,可能在跳转前发生错误异常,但是没报,当输不出来结果,但是也不报异常时,可以在可疑代码前后加try  catch 让其报异常

2015-10-25 15:14:18 944

原创 Struts2 和spring整合的 Action层托管问题

首先分为 entity(实体) dao(数据库操作) service   action四个层千万不要注解xml混用 通常我么对于四个层的单多例设置为:(1)    action一定要设为多例注意:Struts管理时;当使用注解@Scope("singleton")设置action为单例时,可以通过属性注入设置属性的为多例。(很奇怪,和sprig管理不同)spring管理时,

2015-10-25 15:04:59 1430

原创 SSH的编码 和 ajax乱码问题

SSH的编码   和  乱码问题乱码的原因是两次编码格式不一样首先要明白过滤器是先进后出(即在jsp页面 请求action的时候 排在前面的先执行,排在后面的后执行。当服务器响应jsp的时候,排在后面的先执行,排在前面的后执行。谁在前面谁的response设置起最终作用(相同参数覆盖,不同参数都起作用),谁放在后面谁的request会起最终作用(相同参数覆盖,不同参数都起作用))

2015-10-25 12:24:59 660

原创 hibernate HQL new xxx() 查询 join连接多个表,并把连接后的表保存到一个新类中

hibernate HQL  new xxx() 查询 join连接多个表,并把连接后的表保存到一个新类中

2015-10-24 12:58:08 2954

原创 Eclipse配置Struts2问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

一开始我项目使用的是User Libraries,但是真正的jar包在其他项目上弃用了User Libraries, 手动将Struts2的相关jar复制到/webContent/WEB-INF/lib目录下:重新运行程序,成功!也就是说,Tomcat默认从WEB-INF/目录下加载资源,Eclipse在发布程序的时候,并没有把User Librarie

2015-10-22 20:10:30 613

原创 Unsupported major.minor version 51.0解决办法

Unsupported major.minor version 51.0解决办法我使用的是Eclipse-jee-indigo + JDK 1.6.23环境,结果使用时出现Unsupported major.minor version 51.0错误提示,下面我来介绍Unsupported major.minor version 51.0错误的解决办法 今天偶然间同事

2015-10-22 19:57:37 1927

原创 ueditor 未找到上传文件

ueditor是一个功能十分强大的在线文本编辑器,但是在ssh框架中,确切的说实在struts2中由于其拦截器需要对request,session对象进行重新封装,这个过程中会把request对象中保存的一些内容清空,所以会导致ueditor的上传功能获取不到需要上传的内容导致“未找到上传文件”的错误!需要在web.xml中添加一个过滤器,并去掉struts2的在web.xml中配置的过滤

2015-10-21 10:21:22 1819 1

原创 struts2拦截器 默认拦截器 默认跳转 全局异常

struts2 默认的action访问后缀是action 和无后缀struts的配置文件的package中的内容的配置有顺序The content of element type "package" must match "(result- types?, interceptors?, default-interceptor-ref?, default-action- ref?, de

2015-10-20 22:39:44 608

原创 org.hibernate.hql.ast.QuerySyntaxException: buyer is not mapped

hibernate   setProperties(map) 设置参数时老是提示 org.hibernate.hql.ast.QuerySyntaxException: buyer is not mapped 1.看是否忘记将hibernate的映射文件添加到Hibernate.cfg.xml(使用Hibernate时)或者applicationContext.xml中

2015-10-19 22:20:55 534

原创 Exception in thread "main" org.hibernate.HibernateException: save is not valid without active transa

Exception in thread "main" org.hibernate.HibernateException: save is not valid without active transactionat org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(Thre

2015-10-19 21:45:17 1288 1

原创 hibernate 注解

在配置文件中直接使用如下在java中要使用如下来过的sessionfactoryConfiguration cfg = new AnnotationConfiguration().configure();SessionFactory sf=cfg.buildSessionFactory();        "-//Hibernate/Hibern

2015-10-19 19:24:12 399

原创 spring 注解

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.spring

2015-10-19 15:57:31 584

原创 No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional

ssh整合时,使用this.getSessionFactory().getCurrentSession(),会报No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional异常。。class="org.springframework.orm

2015-10-19 15:38:47 512

原创 hibernate 使用注解的 错误

异常信息为:org.hibernate.MappingException: An AnnotationConfiguration instance is required to use 原因分析:Hibernate配置文件中,若带有,则说明映射类时,采用了Annotation方式。在初始化Configuation时,应使用AnnoationConfiguration,代码如

2015-10-17 22:31:30 768

原创 hibernate 一对多映射 懒加载

//从一的一端查询       //hibernate 默认使用懒加载      ClassRoom cr=(ClassRoom) session.get(ClassRoom.class, 1);//get方法不会懒加载,会直接查询ClassRoom数据库,      //但不会发出查询和他一对多的两个数据库的sql      cr.getStu();//默认设置,不会发出sql语

2015-10-17 17:24:55 1791

原创 hibernateTemplte 问题

hibernateTemplte 只是实现了单个sql语句的 事务,  它只是在在sava()或其他操作前加上session.beginTransaction(),在sava()后 ts.commit()  然后try catch  {rollback()}。所以他只能自动提交一条sql语句,无法实现service层的执行多条sql的事务。所以,即使使用hibernateTemplte ,也要

2015-10-17 16:54:59 753

原创 hibenate 操作oracle 日期问题

hibernate 使用日期,oracle 可以设置为 Date  ,Date 可以精确到秒,在java向数据库添加精确到秒的日期时,可以直接  set(new Date()),这样在数据库中显示的是 2015/10/17 16:15:13,直接用session.get()取出来,得到的日期是 2015-10-17 16:15:13.0当oracle 数据库设置成

2015-10-17 16:43:45 589

原创 hibernate 的三种sql语言

(1)save(),  get(), load(),  update()       增删改查(2) hql   Query query=session.createQuery("from Student");  删改查(3) 条件查询  Criteria cr=session.createCriteria(Student.class); 查(4)原生sql SQLQuery sq

2015-10-17 15:21:43 549

原创 java操作oracle数据库的时间类型

方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。PreparedStatement pstmt = conn.prepareStatement("insert into book (na

2015-10-17 13:43:04 1140

原创 oracle 使用 date timestamp 而不使用varchar2()的好处

oracle数据库多年,表示日期数据基本是date型,只有年月的用varchar2或者char,好处见下:1、数据规范。date对合法日期型会校验,包括闰年2月这种。避免字符型变量产生的某月32号,日期长度不对,日期格式不统一等问题。曾经有过痛苦经历,面对字符型的2013111这种数据不知道是11月1日还是1月11日,只想说日…2、检索效率。如果你经常在where后面带这个日期,或者要给这

2015-10-17 13:40:05 1938

原创 java date String 类型相互转换

这种转换要用到java.text.SimpleDateFormat类字符串转换成日期类型:方法1:也是最简单的方法 Date date=new Date("2008-04-14");方法2:SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟String d

2015-10-17 13:37:05 434

原创 Spring官网改版后下载

Spring官网改版后下载Spring官网改版后找了好久都没有找到直接下载Jar包的链接,下面汇总些网上提供的方法,亲测可用.1.直接输入地址,改相应版本即可:http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-

2015-10-14 23:05:02 656

原创 maven 安装和使用

eclipse 整合movenpom.xml一些参数的配置

2015-10-13 13:11:57 447

原创 svn 安装使用

2015-10-13 12:56:02 456

原创 关于滑动条滚动 scroll兼容

Ie浏览器上必须写$(window)$(function(){$(window).scroll(function(){alert("ss"); }) })为窗口添加滚动条事件其实非常的简单,window.onscroll=function(){};注意在获取滚动条距离的时候谷歌不识别document.documentEleme

2015-10-13 08:51:27 900

原创 关于html中 ul li 中加入div(div位置随意设置)的问题

无标题文档#apDiv1 {position:relative;left:20px;top:42px;width:487px;height:639px;}#apDiv1 ul li {list-style-type: none;}.apDiv2 {/* li中的div要设置成绝对,这样,因为ul和li没有设置定位(绝对或相对,默认static

2015-10-09 19:22:07 13917

原创 Oracle 语句的执行顺序

1、FROM 子句:执行顺序为从后往前、从右到左。数据量较少的表尽量放在后面。2、WHERE子句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE 子句的最右。3、GROUP BY:执行顺序从左往右分组,最好在GROUP BY前使用WHERE将不需要的记录在GROUP BY之前过滤掉。4、HAVING 子句:消耗资源。尽量避免使用,HAV

2015-10-07 16:48:19 1147

原创 hibernate3 配置log4j

hibernate3 自带的默认的日志框架是slf4j,hibernate3的slf只是一个日志的接口,而hibernate3 自带默认的日志框架,在实际开发中很少有公司或者是项目中用到,这里记录一种使用log4j的日志框架来代替slf4j日志框架的实现,具体配置以及实现如下:一.加入log4j的日志框架说明:1.    slf4j-api-1.6.1.jar文件,就是前面指的hi

2015-10-07 16:15:13 1086

原创 hibernate 中的一级缓存 二级缓存

1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命 中"),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损耗

2015-10-05 10:05:06 434

原创 装win8 win7系统

要设置u盘,硬盘启动顺序,先把 boot list option 设置为legacy,就可以选择启动顺序了。win8用装好系统后把启动方式改为uefi方式启动,引导磁盘格式为guid(选择硬盘右键可以转换),win7用 legacy方式启动,在分区前(注意是分区前)先把硬盘格式转换成mbr,在分区功能里右键,转换成mbr分区。在按F12无法识别USB和光驱的情况按照下面操作,机

2015-10-01 16:26:34 676

S3 java sdk 文档-使用手册.pdf

AmazonS3 sdk中文文档

2021-11-03

图像标注-labelImg_windows_v1.7

图像标注-labelImg_windows_v1.7 图像标注-labelImg_windows_v1.7 图像标注-labelImg_windows_v1.7

2020-10-25

xgboost.pmml

sklearn 鸢尾花训练后的pmml模型文件 ,sklearn 鸢尾花训练后的pmml模型文件

2020-10-23

iris.csv

iris.csv

2020-10-23

汉语 词频 标注 语料

汉语 词频 标注 语料 汉语 词频 标注 语料 汉语 词频 标注 语料

2018-07-20

centos win7双系统安装,在win7已经安装的基础上

centos win7双系统安装,在win7已经安装的基础上。

2018-07-20

nlp工具 word2vec nltk textblob crf++ 机器人 中文翻译 繁体转简体 关键词 主题 命名体识别 分词 聚类 词性标注 词向量

本资源属于代码类,是一些nlp工具的使用 nlp 工具 word2vec nltk textblob crf++ (1)机器人 (2)中文翻译,及繁体转简体 (3)关键词提取,主题提取,摘要提取 (4)命名体识别 (5)分词 (6)情感分析,正负类分析 (7)近义词,同义词,句子相似性 (8)聚类,监督,无监督 (9)词性标注 (10)词向量提取

2018-07-20

pcm 静默分析

pcm 静默分析pcm 静默分析pcm 静默分析pcm 静默分析pcm 静默分析pcm 静默分析pcm 静默分析

2017-12-27

nltk python 中文版 pdf

nltk python 中文版 pdf

2017-02-17

CRF++ 训练中文分词

CRF++ 训练中文分词,文件后缀有3标示3列的语料,文件后缀有2,表示2列的语料训练

2017-02-08

springboot

springboot-mybatis demo

2017-01-23

CRF++ 0.58.tar.gz源文件for linux和.zip for windows

CRF++ 目前最新版,包括CRF++ 0.58.tar.gz源文件for linux和.zip for windows 另外,包括一个介绍使用的下载网页文件。

2017-01-18

angular 路由,传值,http

angular 路由,传值,http

2016-11-03

opencv 人脸识别 代码

opencv 人脸识别

2016-10-18

qt 页面切换 与传值

qt 页面切换 与传值

2016-09-05

Qt 子窗口父窗口切换,窗口间传值

Qt 子窗口父窗口切换,窗口间传值

2016-09-04

spring-mvc-jasperReports

spring-mvc-jasperReports

2016-09-03

jasperReports spring mvc 整合代码

2016-09-02

python2.7.6+python for eclipse

python2.7.6+python for eclipse

2016-01-03

MyBatis Generator.

MyBatis Generator

2015-12-20

hibernate3-log4j-slf4j所有包

hibernate3 日志配置所需的三个包 log4j-slf4j

2015-10-07

jstl包

jstl包

2015-09-10

mina2 cs 客户端服务器通信 已经实现完整通信代码

mina2 cs 客户端服务器通信 已经实现完整通信代码

2015-05-31

网页,html5,canvas,js 动态绘制柱形图

网页,html5,canvas,js 动态绘制柱形图

2015-05-31

微信网站模板

微信网站模板

2015-03-04

java二维码制作源码

二维码二维码二维码erweima

2015-03-04

phpmyadmin修改密码

phpmyadmin修改密码,自己总结的,很好用

2014-03-31

俄罗斯方块

import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.*; import javax.swing.Timer; public class Tetris extends JFrame { public Tetris() { Tetrisblok a = new Tetrisblok(); addKeyListener(a); add(a); } public static void main(String[] args) { Tetris frame = new Tetris(); JMenuBar menu = new JMenuBar(); frame.setJMenuBar(menu); JMenu game = new JMenu("游戏"); JMenuItem newgame = game.add("新游戏"); JMenuItem pause = game.add("暂停"); JMenuItem goon = game.add("继续"); JMenuItem exit = game.add("退出"); JMenu help = new JMenu("帮助"); JMenuItem about = help.add("关于"); menu.add(game); menu.add(help); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(220, 275); frame.setTitle("Tetris内测版"); // frame.setUndecorated(true); frame.setVisible(true); frame.setResizable(false); } } // 创建一个俄罗斯方块类 class Tetrisblok extends JPanel implements KeyListener { // blockType 代表方块类型 // turnState代表方块状态 private int blockType; private int score = 0; private int turnState; private int x; private int y; private int i = 0; int j = 0; int flag = 0; // 定义已经放下的方块x=0-11,y=0-21; int[][] map = new int[13][23]; // 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵 private final int shapes[][][] = new int[][][] { // i { { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } }, // s { { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }, // z { { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }, // j { { 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // o { { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // l { { 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // t { { 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } }; // 生成新方块的方法 public void newblock() { blockType = (int) (Math.random() * 1000) % 7; turnState = (int) (Math.random() * 1000) % 4; x = 4; y = 0; if (gameover(x, y) == 1) { newmap(); drawwall(); score = 0; JOptionPane.showMessageDialog(null, "GAME OVER"); } } // 画围墙 public void drawwall() { for (i = 0; i < 12; i++) { map[i][21] = 2; } for (j = 0; j < 22; j++) { map[11][j] = 2; map[0][j] = 2; } } // 初始化地图 public void newmap() { for (i = 0; i < 12; i++) { for (j = 0; j < 22; j++) { map[i][j] = 0; } } } // 初始化构造方法 Tetrisblok() { newblock(); newmap(); drawwall(); Timer timer = new Timer(1000, new TimerListener()); timer.start(); } // 旋转的方法 public void turn() { int tempturnState = turnState; turnState = (turnState + 1) % 4; if (blow(x, y, blockType, turnState) == 1) { } if (blow(x, y, blockType, turnState) == 0) { turnState = tempturnState; } repaint(); } // 左移的方法 public void left() { if (blow(x - 1, y, blockType, turnState) == 1) { x = x - 1; } ; repaint(); } // 右移的方法 public void right() { if (blow(x + 1, y, blockType, turnState) == 1) { x = x + 1; } ; repaint(); } // 下落的方法 public void down() { if (blow(x, y + 1, blockType, turnState) == 1) { y = y + 1; delline(); } ; if (blow(x, y + 1, blockType, turnState) == 0) { add(x, y, blockType, turnState); newblock(); delline(); } ; repaint(); } // 是否合法的方法 public int blow(int x, int y, int blockType, int turnState) { for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if (((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x + b + 1][y + a] == 1)) || ((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x + b + 1][y + a] == 2))) { return 0; } } } return 1; } // 消行的方法 public void delline() { int c = 0; for (int b = 0; b < 22; b++) { for (int a = 0; a < 12; a++) { if (map[a][b] == 1) { c = c + 1; if (c == 10) { score += 10; for (int d = b; d > 0; d--) { for (int e = 0; e < 11; e++) { map[e][d] = map[e][d - 1]; } } } } } c = 0; } } // 判断你挂的方法 public int gameover(int x, int y) { if (blow(x, y, blockType, turnState) == 0) { return 1; } return 0; } // 把当前添加map public void add(int x, int y, int blockType, int turnState) { int j = 0; for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if (map[x + b + 1][y + a] == 0) { map[x + b + 1][y + a] = shapes[blockType][turnState][j]; } ; j++; } } } // 画方块的的方法 public void paintComponent(Graphics g) { super.paintComponent(g); // 画当前方块 for (j = 0; j < 16; j++) { if (shapes[blockType][turnState][j] == 1) { g.fillRect((j % 4 + x + 1) * 10, (j / 4 + y) * 10, 10, 10); } } // 画已经固定的方块 for (j = 0; j < 22; j++) { for (i = 0; i < 12; i++) { if (map[i][j] == 1) { g.fillRect(i * 10, j * 10, 10, 10); } if (map[i][j] == 2) { g.drawRect(i * 10, j * 10, 10, 10); } } } g.drawString("score=" + score, 125, 10); g.drawString("抵制不良游戏,", 125, 50); g.drawString("拒绝盗版游戏。", 125, 70); g.drawString("注意自我保护,", 125, 90); g.drawString("谨防受骗上当。", 125, 110); g.drawString("适度游戏益脑,", 125, 130); g.drawString("沉迷游戏伤身。", 125, 150); g.drawString("合理安排时间,", 125, 170); g.drawString("享受健康生活。", 125, 190); } // 键盘监听 public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_DOWN: down(); break; case KeyEvent.VK_UP: turn(); break; case KeyEvent.VK_RIGHT: right(); break; case KeyEvent.VK_LEFT: left(); break; } } // 无用 public void keyReleased(KeyEvent e) { } // 无用 public void keyTyped(KeyEvent e) { } // 定时器监听 class TimerListener implements ActionListener { public void actionPerformed(ActionEvent e) { repaint(); if (blow(x, y + 1, blockType, turnState) == 1) { y = y + 1; delline(); } ; if (blow(x, y + 1, blockType, turnState) == 0) { if (flag == 1) { add(x, y, blockType, turnState); delline(); newblock(); flag = 0; } flag = 1; } ; } } }

2014-01-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除