自定义博客皮肤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

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

原创 Spring mvc POST/GET请求中RequestBody和RequestParam的应用场景

POST请求时@RequestBody --> JSON字符串部分@RequestParam --> 请求参数部分application/json格局图图一.pngform-data、x-www-form-urlencoded格局图图二.png1、从content-type方面总结:① form-data、x-www-form-urlencode...

2019-01-30 09:00:40 3463

原创 HBASE 问题及理解

hbase 界面http://master:16010/master-status使用xshell 进入hbase命令行无法删除问题:进入到XShell 文件 --> 属性 --> 终端 --> 键盘在 DELETE键序列 和 BACKSPACE键序列 中都选择 ASCII 127HBASE常用操作命令https://www....

2019-01-30 09:00:35 451

原创 Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

如有问题可参考另一篇:https://www.cnblogs.com/zengxiaoliang/p/6478859.html一、修改hosts文件在主节点,就是第一台主机的命令行下;vim /etc/hosts我的是三台云主机:在原文件的基础上加上;ip1 master worker0 namenodeip2 worker1 datanode1ip3 worker...

2019-01-30 09:00:30 387

原创 HBase学习之路 MapReduce操作Hbase

其他hbase之java操作请看https://www.cnblogs.com/zhaobingqing/p/8269055.html,https://www.cnblogs.com/zhaobingqing/p/8269055.html,https://www.cnblogs.com/xing901022/p/7113166.htmlMapReduce从HDFS读取数据存储到HBase中...

2019-01-30 09:00:24 222

原创 Hadoop2.7.3+Hbase-1.2.6完全分布式安装部署

Hadoop安装部署基本步骤:其他HBASE配置说明请看:https://www.cnblogs.com/judylucky/p/5692147.html需要把配置好的hbase 复制到其他节点的相同目录下1、安装jdk,配置环境变量。 jdk可以去网上自行下载,环境变量如下: 编辑 vim /etc/profile 文件,添加如下内容: ...

2019-01-29 23:10:37 310

原创 hadoop集群,mapreduce任务没有在所有slave节点上执行的问题

maptask在哪台服务器上执行了,可以在http://1master:19888 日志聚合的界面查看,也可以在运行时查看节点cpu使用情况本人使用yarn作为任务调度,两台slave,但是最终发现,要么全是slave1执行mapreduce,要么全是slave2执行mapreduce。经查找资料发现,有一台nodemanger 作为mrAppmaster,用于向其他节点分配mapred...

2019-01-29 23:09:23 1755

原创 HADOOP hive 安装问题及理解及数据导入操作

关于hive的安装请参考网上其他文章如:https://blog.csdn.net/Lee20093905/article/details/78871336,https://blog.csdn.net/vpqtxzmzezeqjj9977/article/details/80483019,https://www.cnblogs.com/jchubby/p/5449350.html,https://...

2019-01-29 23:08:14 217

原创 Spring @FeignClient

使用Spring Cloud搭建各种微服务之后,服务可以通过@FeignClient使用和发现服务场中的其他服务。还是以Config Server和Config Client为例,这是服务场中的注册的两个微服务。Config Server中定义了两个服务接口(一个Post、一个Get方法)package demo.controller;import org.springframewo...

2019-01-29 23:07:04 239

原创 Spring Cloud的Ribbon-Hystrix-Feign

Ribbon 作为负载均衡,在客户端实现,服务段可以启动两个端口不同但servername一样的服务Hystrix作为熔断流量控制,在客户端实现,在方法上注解,当请求出错时可以调用注解中的方法返回Feign 可以定义请求到其他服务的接口,用于微服务间的调用,不用自己再写http请求,在客户端实现,调用此接口就像远程调用其他服务一样,当请求出错时可以调用接口的实现类来返回一、客户端负载均...

2019-01-29 23:06:22 191

原创 SpringCloud微服务架构概念,及下属子项目

1.单体架构单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用。假设你正准备开发一款与Uber和Hailo竞争的出租车调度软件,经过初步会议和需求分析,你可能会手动或者使用基于Spring Boot、Play或者Maven的生成器开始这个新项目,它的六边形架构是模块化的,架构图如下: 应用核心是业务逻辑,由定义服务、域对象和事件的模块完...

2019-01-29 23:04:33 393

原创 Windows平台Hadoop出现 Exception message: CreateSymbolicLink error (1314): ???????????

hadoop 2.7.1windows 2008 server R2问题描述:在使用kettel执行ELT任务到hive时 hadoop出现Exception message: CreateSymbolicLink error (1314): ???????????(创建符号表异常),经过分析发现为windows账户不具备创建符号表的权限解决方法:1....

2019-01-29 23:03:30 1041 1

原创 hadoop中NameNode、DataNode、Secondary、NameNode、ResourceManager、NodeManager 介绍

1:NameNode2:SecondNameNode3:DataNode4:ResourceManager5:NodeManager----------------------------------------------------------------------------------------------------------------------------...

2019-01-29 23:02:02 1455

原创 springboot学习笔记springboot整合RabbitMQ,及四种交换机模式

RabbitMQ 有四种交换机模式:Direct Pattern (此模式不需要配置交换机)Fanout Pattern ( 类似于广播一样,将消息发送给和他绑定的队列 )Topic Pattern ( 绑定交换机时可以做匹配。 #:表示零个或多个单词。*:表示一个单词 )Header Pattern ( 带有参数的匹配规则 )一 RabbitMQ的介绍    RabbitM...

2019-01-29 22:50:36 3975

原创 HDFS HBASE JAVA 读写 查询

pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/...

2019-01-29 13:36:02 233

原创 springboot学习笔记springboot整合RabbitMQ

一 RabbitMQ的介绍    RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache).  消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: ...

2019-01-27 18:44:19 202

原创 docker 常用命令总结

注意 stop,restart后的容器,或者commit后的镜像启动环境变量需要重新加载,比如 source /etc/source我们运行docker容器的时候,使用了-d参数,把容器在后台运行后。1.启动dockerdocker run -d -i -t <imageID> /bin/bash 上述命令执行某些命令回报错Failed to get D-Bus co...

2019-01-27 18:38:01 116267 5

原创 Spring @Pointcut

AOP的基本概念Advice(通知、切面): 某个连接点所采用的处理逻辑,也就是向连接点注入的代码, AOP在特定的切入点上执行的增强处理。 @Before:标识一个前置增强方法,相当于BeforeAdvice的功能. @After:final增强,不管是抛出异常或者正常退出都会执行. @AfterReturning: 后置增强,似于AfterReturningAdvice, ...

2019-01-27 18:35:40 4937

原创 Spring MVC异常统一处理的三种方式

正文Spring 统一异常处理有 3 种方式,分别为:使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice 注解使用 @ ExceptionHandler 注解使用该注解有一个不好的地方就是:进行异常处理的方法必须与出错的方法在同一个Controller里面。使用如下:...

2019-01-27 18:33:12 248

原创 hadoop,spark,yarn,jobhistory等用到的一些WEB界面

http://192.168.244.100:19888 日志聚合的界面jobhistory,可以看到每个job的分配情况,maptask的分配到哪个节点,及完成情况需要在hadoop的sbin下执行如下命令mr-jobhistory-daemon.sh start historyserverhttp://192.168.244.100:50070hadoop的web界面http...

2019-01-27 18:27:56 1350

原创 hadoop 日志聚合 jobhistory配置

一、前言安装了hadoop-2.7.3集群,登陆YARN WEB界面,发现下图mapreduce应用UI入口都无法使用,现记录下处理方案二、处理方案1.yarn-site.xml配置yarn.resourcemanager.webapp.address,如果没配置ApplicationMaster入口无法使用<property> <name&g...

2019-01-27 18:20:54 681

原创 修改hdfs上的文件所属用户、所属组等读写执行控制权限

HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:sudo addgroup Hadoop#添加一个hadoop组sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组sudo gedit etc/sud...

2019-01-27 18:16:12 13394

原创 Hadoop2.9 利用VMware搭建自己的hadoop集群

另还参考的另一篇文章:http://www.cnblogs.com/ocean-sky/p/8397778.html正文:  在之前的hadoop文章中,我主要是介绍了自己初次学习hadoop的过程中是如何将hadoop伪分布式模式部署到linux环境中的,如何自己编译一个hadoop的eclipse插件,以及如何在eclipse中搭建hadoop编程环境。如果大家有需要的话,可以点击我在...

2019-01-27 18:11:24 917

原创 activiti工作流

demo下载链接: https://pan.baidu.com/s/15b-YYoS99AMBO8s4lIewgg 提取码: 7v98一、为什么选择Activiti工作流引擎对比二、核心7大接口、28张表7大接口(一)7大接口RepositoryService:提供一系列管理流程部署和流程定义的API。 RuntimeService:在流程运行时对流程实例...

2019-01-27 18:07:23 1163 1

原创 JSON Web Token 跨域认证 JWT

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4...

2019-01-15 13:02:10 439

原创 重写equals和hashCode的原则规范

当符合以下条件时不需要重写equals方法:1.一个类的每一个实例本质上都是唯一的。2.不关心一个类是否提供了“逻辑相等”的测试功能3.超类已经改写了equals方法,并且从超类继承过来的行为对于子类也是合适的。4.一个类时私有的或者是package私有的,并且可以确定它的equals方法永远不会被调用。(这...

2019-01-10 22:09:35 539

原创 java内存分配,常量池,各种类型==比较

字符串内存分配:首先:(1)String a="123";(2)a="456";String为final常量,会把字符串存入常量池,当第一步会先"123"放入常量池并分配内存地址,a为“123”的引用,即他的的内存地址为“123”的内存地址,第二步a的地址为“456”的地址  对于字符串,其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)...

2019-01-10 21:58:10 419

原创 深入理解 hashcode 和 hash 算法

摘要二进制计算的一些基础知识为什么使用 hashcodeString 类型的 hashcode 方法为什么大部分 hashcode 方法使用 31HashMap 的 hash 算法的实现原理(为什么右移 16 位,为什么要使用 ^ 位异或)HashMap 为什么使用 & 与运算代替模运算?HashMap 的容量为什么建议是 2的幂次方?我们自定义 HashMap 容量最好是...

2019-01-10 21:11:10 520

原创 浅谈单链表与双链表的区别

数组的优点随机访问性强(通过下标进行快速定位)查找速度快数组的缺点插入和删除效率低(插入和删除需要移动数据)可能浪费内存(因为是连续的,所以每次申请数组之前必须规定数组的大小,如果大小不合理,则可能会浪费内存)内存空间要求高,必须有足够的连续内存空间。数组大小固定,不能动态拓展链表的优点插入删除速度快(因为有next指针指向其下一个节点,通过改变指针的指向可以方便的增加删除元素)...

2019-01-10 21:10:10 472

原创 关于java的锁

package com.lhy;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class A { static A a=n...

2019-01-10 21:07:50 122

原创 java 父子类方法执行顺序

class Parent { static String a="XXX"; Parent(){ System.out.println("Parent!1"+a); } static{ System.out.println("Parent!3"+a); } { System.out.pri...

2019-01-03 11:23:00 1128

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关注的人

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