1. 首页 > 球员动态

vs窗体跳转-vs窗体设计移动小球

高分求java的基础视频教程,要基础入门的。电驴和迅雷上的资源太乱了,不知道该下哪些,有没有整理的。

vs窗体跳转-vs窗体设计移动小球

我这边有韩顺平的视频讲座,很基础,从最基本的开始讲的,你需要的话我给你,下面是清单:

韩顺平 循序渐进学 java 从入门到精通 第0讲-开山篇

韩顺平 循序渐进学 java 从入门到精通 第1讲-内容介绍 项目演示 原理剖析

内容介绍:本章讲解以下内容: (1)课程介绍(2)项目演示(坦克游戏,雷霆战舰,满汉楼,爆炸人..)(3)java介绍(4)java开发工具介绍(5)java语言的特点(6)jdk的安装和配置演示 (7)java运行原理剖析(Hello,wrold)

韩顺平 循序渐进学 java 从入门到精通 第2讲-变量 数据类型

内容介绍:本章讲解以下内容: (1)初识变量(2)java的基本数据类型(3)定义变量、初始化、赋值(4)基本数据类型的转换 a.自动转换 b.强制转换 c.计算中的转换

韩顺平 循序渐进学 java 从入门到精通 第3讲-运算符 流程控制

内容介绍:本章讲解以下内容: (1)java的算术运算符(2)java的关系运算符(3)java的逻辑运算符(4)java的三大流程控制-顺序控制(5)java的三大流程控制-分支控制

韩顺平 循序渐进学 java 从入门到精通 第4讲- 流程控制

内容介绍:本章讲解以下内容: (1)java的三大流程控制-分支控制(2)java的三大流程控制-循环控制(3)作业布置

韩顺平 循序渐进学 java 从入门到精通 第5讲-类 对象

内容介绍:本章讲解以下内容: (1)类的介绍(2)对象的介绍(3)类和对象关系(4)类和对象的区别和联系(5)如何定义类(6)如何创建类

韩顺平 循序渐进学 java 从入门到精通 第6讲-成员属性 成员方法

内容介绍:本章讲解以下内容: (1)类的成员属性(2)如何访问(使用)对象的成员变量(3)对象在内存的形式(4)类的成员方法的定义和使用

韩顺平 循序渐进学 java 从入门到精通 第7讲-成员方法 构造方法

内容介绍:本章讲解以下内容: (1)类的成员方法的理解(2)方法-调用过程(3)类的成员方法(函数)-注意事项(4)类的成员方法的定义和使用(5)类的构造方法(默认构造方法)(6)类的构造方法小结

韩顺平 循序渐进学 java 从入门到精通 第8讲-this 类变量

内容介绍:本章讲解以下内容: (1)this代词详讲(2)类变量详讲

韩顺平 循序渐进学 java 从入门到精通 第9讲-类方法 封装

内容介绍:本章讲解以下内容: (1)类方法详解(2)抽象(3)封装(4)四个访问修饰符 public private protected 默认(5)包

韩顺平 循序渐进学 java 从入门到精通 第10讲-访问修饰符 重载 覆盖

内容介绍:本章讲解以下内容: (1)四个访问修饰符的详解(2)继承详解(3)方法的重载

(4)方法的覆盖

韩顺平 循序渐进学 java 从入门到精通 第11讲-约瑟夫问题

内容介绍:本章讲解以下内容: (1)约瑟夫问题详解(用链表解决)

韩顺平 循序渐进学 java 从入门到精通 第12讲-多态

内容介绍:本章讲解以下内容: (1)多态详解

韩顺平 循序渐进学 java 从入门到精通 第13讲-抽象类 接口

内容介绍:本章讲解以下内容: (1)抽象类详解(2)接口的详解

韩顺平 循序渐进学 java 从入门到精通 第14讲-final 作业评讲

内容介绍:本章讲解以下内容: (1)用接口实现多态(2)实现接口 vs 继承类(3)final修饰符详解

(4)作业评讲

韩顺平 循序渐进学 java 从入门到精通 第15讲-作业 测试题

(1)作业、测试题评讲

韩顺平 循序渐进学 java 从入门到精通 第16讲-数组

(1)数组详解(2)简单数据类型的数组(3)对象数组

韩顺平 循序渐进学 java 从入门到精通 第17讲-排序

(1)排序介绍(2)冒泡排序(3)选择排序

韩顺平 循序渐进学 java 从入门到精通 第18讲-排序 查找

(1)插入排序法(2)快速排序法(3)外部排序法(4)查找介绍(5)顺序查找和二分查找

韩顺平 循序渐进学 java 从入门到精通 第19讲-多维数组

(1)多维数组讲解

韩顺平 循序渐进学 java 从入门到精通 第20讲-二进制 位运算 位移运算

内容介绍:本章讲解以下内容: (1)二进制(原码、反码、补码)(2)位运算(取反,位与,位异或,位或)(3)位移运算(算术右移,算术左移,逻辑左移)

韩顺平 循序渐进学 java 从入门到精通 第21讲-集合

内容介绍:本章讲解以下内容: (1)集合框架图,体系介绍(2)ArrayList 详解

韩顺平 循序渐进学 java 从入门到精通 第22讲-集合

内容介绍:本章讲解以下内容: (1)使用ArryaList完成雇员薪水管理系统(2)LinkedList的介绍和使用(3)Vector的介绍和使用(4)Stack(栈)的介绍和使用

韩顺平 循序渐进学 java 从入门到精通 第23讲-集合

内容介绍:本章讲解以下内容: (1)HashMap的介绍和使用(2)Hashtable的介绍和使用(3) HashMap、Hashtable的区别(4) ArrayList、Vector的区别

韩顺平 循序渐进学 java 从入门到精通 第24讲-集合补充

内容介绍:本章讲解以下内容: (1)对集合使用的补充说明.

韩顺平 循序渐进学 java 从入门到精通 第25讲-泛型 异常

内容介绍:本章讲解以下内容: (1)java泛型介绍(2)java泛型举例详解(3)java泛型的优点

(4)异常的介绍和异常的分类

韩顺平 循序渐进学 java 从入门到精通 第26讲-异常

内容介绍:本章讲解以下内容: (1)异常的处理-try catch finally(2)异常的处理-throws

韩顺平 循序渐进学 java 从入门到精通 第27讲-作业评讲

内容介绍:本章讲解以下内容: (1)作业评讲(最佳裁判、学生成绩...)

韩顺平 循序渐进学 java 从入门到精通 第28讲-面试题评讲

内容介绍:本章讲解以下内容: (1) 赛迪网程序员面试题评讲[最后待定...]

韩顺平 循序渐进学 java 从入门到精通 第29讲-满汉楼 swing介绍

内容介绍:本章讲解以下内容: (1) 图形用户界面编程介绍(gui)(2)满汉楼餐饮系统演示

(3)awt swing swt jface关系(4)eclipse介绍(5)swing组件介绍(6)swing的窗体组件和按钮组件

韩顺平 循序渐进学 java 从入门到精通 第30讲-布局管理器

内容介绍:本章讲解以下内容: (1)布局管理器介绍(2)BorderLayout 边界布局(3)FlowLayout 流式布局(4)GridLayout 网格布局

韩顺平 循序渐进学 java 从入门到精通 第31讲-常用组件

内容介绍:本章讲解以下内容: (1)JPanle的介绍和使用(2)布局管理器的综合使用

(3)swing常用组件JTextField JPasswordField JLabel(4)swing常用组件JCheckBox JRadioButton(5)swing常用组件 JComboBox JList JScrollPane

韩顺平 循序渐进学 java 从入门到精通 第32讲-swing编程实战

内容介绍:本章讲解以下内容: (1)swing编程实战-金山词霸界面(2)swing编程实战-qq聊天界面(3)swing编程实战-qq登录界面(4)swing编程实战-记事 本界面(5)swing组件 JSplitPane JTextArea JTabbedPane (6)swing组件JMenuBar JMenu JMenuItem JToolBar

韩顺平 循序渐进学 java 从入门到精通 第33讲-绘图技术 坦克大战1

内容介绍:本章讲解以下内容: (1)坦克大战游戏演示(2)java绘图坐标系

(3)像素的概念(4)java绘图技术-原理(5)java绘图常用的方法

韩顺平 循序渐进学 java 从入门到精通 第34讲-绘图技术 坦克大战2

内容介绍:本章讲解以下内容: (1)坦克大战游戏-绘出坦克(2)作业-画蛤蟆 和 王八

韩顺平 循序渐进学 java 从入门到精通 第35讲-事件处理 坦克大战3

内容介绍:本章讲解以下内容: (1)java事件处理机制-原理(2)java事件处理机制案例详解

(3)事件源 事件 事件监听者 事件处理方法详解(4)java事件处理机制 通俗版理解

(5)让一个小球可以被控制上下左右移动(键盘监听)

韩顺平 循序渐进学 java 从入门到精通 第36讲-事件监听 坦克大战4

内容介绍:本章讲解以下内容: (1)java事件处理机制继续讲解(2)事件接口

(3)事件处理机制的一些案例

韩顺平 循序渐进学 java 从入门到精通 第37讲-事件总结 坦克大战5

内容介绍:本章讲解以下内容: (1)java事件处理编程总结(2)坦克大战游戏---让自己的坦克可以自由的移动.

韩顺平 循序渐进学 java 从入门到精通 第38讲-线程 坦克大战6

内容介绍:本章讲解以下内容: (1)进程的介绍(2)线程的介绍及其作用

(3)用继承Thread类的方法来开发线程(4)用实现Runnable接口的方法来开发线程

韩顺平 循序渐进学 java 从入门到精通 第39讲-线程 坦克大战7

内容介绍:本章讲解以下内容: (1)如何更好的理解线程(2)继承Thread和实现Runnable接口的区别(3)线程的实际运用 ---坦克大战游戏(3.0) 玩家可以发射子弹.

韩顺平 循序渐进学 java 从入门到精通 第40讲-线程

内容介绍:本章讲解以下内容: (1)线程使用的经验之谈(2)线程同步处理方式

(3)对象锁和线程安全(4)synchronized的具体使用

韩顺平 循序渐进学 java 从入门到精通 第41讲-坦克大战8

内容介绍:本章讲解以下内容: (1)坦克大战游戏升级(3.0) 玩家可以连续发射子弹

(2)坦克大战游戏升级(3.0) 当击中敌人坦克时,敌人坦克就消失

韩顺平 循序渐进学 java 从入门到精通 第42讲-坦克大战9

内容介绍:本章讲解以下内容:

(1)坦克大战游戏升级(4.0) 当击中敌人坦克时,敌人坦克就消失,并出现爆炸效果

(2)坦克大战游戏升级(4.0) 敌人坦克可以自由移动

(3)坦克大战游戏升级(4.0) 敌人坦克可以移动控制在区域内

(4)坦克大战游戏升级(4.0) 敌人坦克可以发射子弹

(5)坦克大战游戏升级(4.0) 敌人坦克可以连发子弹

韩顺平 循序渐进学 java 从入门到精通 第43讲-io编程 坦克大战10

内容介绍:本章讲解以下内容:

(1)坦克大战游戏升级(4.0) 当敌人的坦克击中我的坦克时,我的坦克爆炸并消失

(2)坦克大战游戏升级(4.0) 如何控制敌人坦克重迭运动

(3)java io 编程( 文件编程 )初步介绍

(4)文件和文件流的基本概念

(5)java io 流类一览表

(6)文件流的分类 字节流 和 字符流的介绍

韩顺平 循序渐进学 java 从入门到精通 第44讲-io编程

内容介绍:本章讲解以下内容: (1)java 常用 io流-文件类(File)(2)演示如何得到文件信息

(3)演示如何创建文件夹,遍历文件,创建新文件

(4)FileInputStream 和 FileOutputStream类的使用案例

韩顺平 循序渐进学 java 从入门到精通 第45讲-io编程

内容介绍:本章讲解以下内容:

(1)使用FileInputStream 和 FileOutputStream完成拷贝

(2)文件字符流的使用案例 FileReader FileWriter

(3)缓冲字符流的使用案例 BufferedReader BufferedWriter

(4)打印输出流的案例 PrintWriter

韩顺平 循序渐进学 java 从入门到精通 第46讲-io编程 记事本开发

内容介绍:本章讲解以下内容: (1)java io 编程综合案例 (2)一个简单的文件记事本开发

韩顺平 循序渐进学 java 从入门到精通 第47讲-坦克大战11

内容介绍:本章讲解以下内容: (1)坦克大战游戏升级(5.0) 如何控制敌人坦克重迭运动

韩顺平 循序渐进学 java 从入门到精通 第48讲-坦克大战12

(1)坦克大战游戏升级(5.0) 可以分关

(2)坦克大战游戏升级(5.0) 闪烁效果

(3)坦克大战游戏升级(5.0) 可以在玩游戏的时候暂停和继续

(4)坦克大战游戏升级(5.0) 可以记录玩家的成绩

韩顺平 循序渐进学 java 从入门到精通 第49讲-坦克大战13

(1)坦克大战游戏升级(5.0) 可以存盘退出

(2)坦克大战游戏升级(5.0) 可以恢复到退出状态 接着上一局玩

韩顺平 循序渐进学 java 从入门到精通 第50讲-坦克大战14

(1)坦克大战游戏升级(5.0) java播放声音文件(2)播放经典的fc坦克大战游戏开始音.

韩顺平 循序渐进学 java 从入门到精通 第51讲-作业评讲

内容介绍:本章讲解以下内容: (1)老猴排序-作业评讲

韩顺平 循序渐进学 java 从入门到精通 第52讲-试题评讲

内容介绍:本章讲解以下内容: (1)赛迪网初级程序员笔试题评讲

韩顺平 循序渐进学 java 从入门到精通 第53讲-数据库概念

(1)数据库的基本概念(2)数据库的基本结构(3)数据库的基本特点(4)目前主流数据库的介绍

韩顺平 循序渐进学 java 从入门到精通 第54讲-sql server安装配置卸载

(1)sql server 数据库的安装、配置、卸载

韩顺平 循序渐进学 java 从入门到精通 第55讲-sql server基本使用

(1)数据库sa 用户和普通用户的创建和密码分派(2)windows验证和混合验证的讲解

(3)企业管理器的基本使用案例

韩顺平 循序渐进学 java 从入门到精通 第56讲-查询分析器 ddl dml dql

(1)查询分析器的基本使用案例(2)简单的ddl 、dml 和 dql语句使用案例

韩顺平 循序渐进学 java 从入门到精通 第57讲-sql server 数据类型

(1)表名和列名的命名规则(2)表支持的数据类型-字符型char varchar text ntext nchar nvarchar (3)表支持的数据类型-数字类型 bit

韩顺平 循序渐进学 java 从入门到精通 第58讲-sql server 数据类型

(1)表支持的数据类型-数字类型 int bigint float numeric

(2)表支持的数据类型-日期类型 datetime timestamp

(3)表支持的数据类型-image binary

(4)表的基本操作(建表,增,删,改)

韩顺平 循序渐进学 java 从入门到精通 第59讲-sql server 基本查询

(1)表的主键 和 外键(2)查询所有列,指定列,取消重复行(3)使用算术表达式,使用列的别名(4)使用where 子句(5)模糊查询(like)

韩顺平 循序渐进学 java 从入门到精通 第60讲-sql server 基本查询

(1)在where条件中使用in(2)使用is null的操作符(3)使用逻辑操作符号(4)使用order by字句

(5)使用列的别名排序(6)数据分组-max,min,avg,sum,count(7)group by 和 having子句

(8)对数据分组的总结

韩顺平 循序渐进学 java 从入门到精通 第61讲-sql server 复杂查询

(1)多表查询(2)自连接(3)子查询 单行子查询 多行子查询

韩顺平 循序渐进学 java 从入门到精通 第62讲-sql server 复杂查询

(1)在from子句中使用子查询(2)分页查询(3)内连接(4)外连接(左外连接 右外连接)

韩顺平 循序渐进学 java 从入门到精通 第63讲-sql server 约束

(1)维护数据的完整性(2)主键 外键 not null foreign key unique check

韩顺平 循序渐进学 java 从入门到精通 第64讲-sql server 备份恢复 jdbc-odbc

(1)使用企业管理器完成数据库的分离、附加(2)使用企业管理器完成数据库的备份和恢复

(3)使用查询分析器完成数据库的备份和恢复(4)crud介绍

(5)jdbc介绍和jdbc驱动的分类(6)jdbc-odbc桥连接 的案例详解

韩顺平 循序渐进学 java 从入门到精通 第65讲-sql server jdbc

(1)jdbc-odbc桥连案例详解(2)sql注入漏洞解析(3)使用PreparedStatement技巧

(4)Statement和PreparedStatement的区别

韩顺平 循序渐进学 java 从入门到精通 第66讲-sql server jdbc

(1)jdbc驱动直连数据库(2)jdbc的案例详解(3)在java程序中创建,删除数据库(表)

(4)在java程序中备份,恢复数据库(表)

韩顺平 循序渐进学 java 从入门到精通 第67讲-sql server 作业评讲

(1)对表操作的测试题评讲(重要!)

韩顺平 循序渐进学 java 从入门到精通 第68讲-项目开发流程

(1)软件开发项目流程介绍(2)满汉楼餐饮系统简单介绍和分析

韩顺平 循序渐进学 java 从入门到精通 第69讲-学生管理系统1 项目分析

(1)学生管理系统开发流程详细介绍1.使用jude作出流程图2.设计数据库3.功能分析

(3)数据库编程实战之一--学生管理系统1

韩顺平 循序渐进学 java 从入门到精通 第70讲-学生管理系统2

(1)数据库编程实战之一--学生管理系统2

韩顺平 循序渐进学 java 从入门到精通 第71讲-学生管理系统3 增删改

(1)数据库编程实战之一--学生管理系统3 完成对学生的增加、删除、修改

韩顺平 循序渐进学 java 从入门到精通 第72讲-学生管理系统4 model2模式

(1)数据库编程实战之一--学生管理系统4

完成对学生信息的修改

(2)提出模式的概念(3)对学生管理系统从model1模式改为model2模式

韩顺平 循序渐进学 java 从入门到精通 第73讲-学生管理系统5 dao sqlhelper

(1)数据库编程实战之一--学生管理系统5

在model2模式中对model层再次分层.业务层和DAO层.

(2)编写一个DAO类 SqlHelper(3)完成学生管理系统并总结

韩顺平 循序渐进学 java 从入门到精通 第74讲-满汉楼系统1 项目分析

(1)java项目实训之--满汉楼餐饮系统1

满汉楼餐饮系统设计分析

满汉楼餐饮系统使用演示

满汉楼餐饮系统设计文档说明

(2)充分理解项目开发五大流程.

韩顺平 循序渐进学 java 从入门到精通 第75讲-满汉楼系统2 项目分析

(1)java项目实训之--满汉楼餐饮系统2

满汉楼餐饮系统安装与配置

满汉楼餐饮系统的操作流程

韩顺平 循序渐进学 java 从入门到精通 第76讲-满汉楼系统3 实现闪屏 登录

(1)java项目实训之--满汉楼餐饮系统3

a.实现登录闪屏效果b.实现登录界面

韩顺平 循序渐进学 java 从入门到精通 第77讲-满汉楼系统4 菜单

(1)java项目实训之--满汉楼餐饮系统4

a.实现登录界面所有b.实现经理,主管,系统管理员的操作主界面-菜单部分

韩顺平 循序渐进学 java 从入门到精通 第78讲-满汉楼系统5 工具栏状态栏

(1)java项目实训之--满汉楼餐饮系统5

a.对主界面的布局结构进行分析

b.实现经理,主管,系统管理员的操作主界面-工具栏和状态栏

韩顺平 循序渐进学 java 从入门到精通 第79讲-满汉楼系统6 登录验证

(1)java项目实训之--满汉楼餐饮系统6

a.编写数据层,业务层的部分类,完成用户到数据库的登录验证

b.加深对model2模式的认识.c.编写SqlHelper工具类

韩顺平 循序渐进学 java 从入门到精通 第80讲-满汉楼系统7 窗口拆分

(1)java项目实训之--满汉楼餐饮系统7

a.完成经理,主管,系统管理员的操作主界面-八个可选操作选项

b.完成窗口的拆分显示

韩顺平 循序渐进学 java 从入门到精通 第81讲-满汉楼系统8 界面切换

(1)java项目实训之--满汉楼餐饮系统8

a.完成经理,主管,系统管理员的操作主界面-人事管理和登录管理切换

b.完成主界面一些特效

韩顺平 循序渐进学 java 从入门到精通 第82讲-满汉楼系统9 人事管理

(1)java项目实训之--满汉楼餐饮系统9

a.完成经理,主管,系统管理员的操作主界面-人事管理的显示,增加,删除和修改

韩顺平 循序渐进学 java 从入门到精通 第83讲-满汉楼系统10 报表统计 uml图

(1)java项目实训之--满汉楼餐饮系统10

a.完成经理,主管,系统管理员的操作主界面-报表统计的显示

b.如何使用jude软件设计uml的用例图,类图,和时序图(重要)

c.满汉楼项目实训之-结束语

韩顺平 循序渐进学 java 从入门到精通 第84讲-网络基础

(0)java网络编程开篇名义(1)山寨版qq项目演示(2)为什么选择qq来讲解网络编程

(3)网线,网卡,无线网卡(4)协议(tcp/ip)介绍(5)ip地址介绍(6)Ip地址与包的路由传递

韩顺平 循序渐进学 java 从入门到精通 第85讲-port url socket编程原理

(1)端口port(2)url地址(3)单工、半双工和全双工概念.(4)java网络编程基本原理图

(5)客户端向服务器端互发信息 (半双工通讯)

韩顺平 循序渐进学 java 从入门到精通 第86讲-半双工 双全工

(1)客户端向服务器端互发信息 (半双工通讯)

在案例一得基础上增加,可以从控制台输入信息,相互通讯.

(2)客户端和服务器端,可以任意互发信息,带界面

韩顺平 循序渐进学 java 从入门到精通 第87讲-山寨qq项目1 登录界面

(1)山寨版qq天下项目实战之一(2)完成山寨版qq登录界面

韩顺平 循序渐进学 java 从入门到精通 第88讲-山寨qq项目2 好友列表界面

(1)山寨版qq天下项目实战之二(2)完成山寨版qq的好友列表界面

韩顺平 循序渐进学 java 从入门到精通 第89讲-山寨qq项目3 聊天界面 对象流

(1)山寨版qq天下项目实战之三(2)完成山寨版qq聊天界面(3)讲解如何在网络间传递对象流

韩顺平 循序渐进学 java 从入门到精通 第90讲-山寨qq项目4 登录验证

(1)山寨版qq天下项目实战之四(2)完成服务器控制界面

(3)完成客户端和服务器端得程序结构分析(4)完成用户的登录验证(到服务器去验证)

韩顺平 循序渐进学 java 从入门到精通 第91讲-山寨qq项目5 一对一的聊天

(1)山寨版qq天下项目实战之五

(2)完成鼠标移动到那个好友就高亮他,双击可以跳出聊天窗口(3)完成一对一的聊天

韩顺平 循序渐进学 java 从入门到精通 第92讲-山寨qq项目6 多对多的聊天

(1)山寨版qq天下项目实战之六(2)完成山寨版qq多对多的聊天

韩顺平 循序渐进学 java 从入门到精通 第93讲-山寨qq项目7 好友在线提示

(1)山寨版qq天下项目实战之七(2)完成山寨版qq多对多的聊天的显示

(3)完成山寨版qq如何好友在线则显示彩色头像,如果不在线则显示灰色的头像.

韩顺平 循序渐进学 java 从入门到精通 第94讲-山寨qq项目8 好友在线提示

(1)山寨版qq天下项目实战之八(2)完成山寨版qq当一个好友上线,可以通知所有

在线的好友,并让他的头像显示彩色头像.

(3)提出要完成的新任务.

1.不让同一个账号反复登录

2.如果好友不在线,则不能聊天.

********************************************************************

求java题源代码,最好有注释,

import java.awt.*;

import java.awt.event.*;

import java.awt.geom.*;

import java.util.*;

import javax.swing.*;

/**

* 多线程,小球演示. 打开Windows任务管理器,可看到线程变化。 可搜索到,run()方法/.start()

*

* du: 程序技巧体会: 所谓产生一个小球,即是 new 其类对象,其属性携带画小球的 坐标、颜色、所在容器 等参数。

*

* 一个类,属性用来作为参数容器用, 方法....完成功能。

* */

// 运行类

public class BouncePress {

//

public static void main(String[] args) {

JFrame frame = new BouncePressFrame(); // 生成窗口。执行构造。-----业务逻辑。

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to

// window

// listener

frame.show();

}

}

class BouncePressFrame extends JFrame {

private BallPressCanvas canvas;

public BouncePressFrame() {

setSize(600, 500); // 窗口大小

setTitle("Bounce Ball");

Container contentPane = getContentPane(); // Swing的窗口不能直接放入东西,只能在其上的ContentPane上放。

canvas = new BallPressCanvas(); // 生成一个新面板。-----canvas

contentPane.add(canvas, BorderLayout.CENTER); // 窗口中心 加入该面板。

JPanel buttonPanel = new JPanel(); // 再生成一个新面板。----buttonPanel

// 调用本类方法addButton。

addButton(buttonPanel, "Start", // 生成一个按钮"Start"---加入面板buttonPanel

new ActionListener() { // |------>按钮绑上 action。

public void actionPerformed(ActionEvent evt) { // | 小球容器对象的

addBall(Thread.NORM_PRIORITY - 4, Color.black); // 事件处理时,执行---addBall()方法。--->产生小球(参数对象)--->加入List中--->开始画球。

}

}); // 按一次,addBall()一次--->产生一个新小球--->加入List中--->开始画此新小球。

// --->画球线程BallPressThread的run()--->小球(参数对象).move()--->每次画时,先移动,再判断,再画。

// --->BallPressCanvas类的canvas对象.paint()--->自动调BallPressCanvas类的paintComponent(Graphics

// g)方法。

// --->该方法,从List中循环取出所有小球,第i个球,--->调该小球BallPress类

// .draw()方法--->调Graphics2D方法画出小球。--使用color/

addButton(buttonPanel, "Express", new ActionListener() {

public void actionPerformed(ActionEvent evt) {

addBall(Thread.NORM_PRIORITY + 2, Color.red);

}

});

addButton(buttonPanel, "Close", new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.exit(0);

}

});

contentPane.add(buttonPanel, BorderLayout.SOUTH);

}

public void addButton(Container c, String title, ActionListener listener) {

JButton button = new JButton(title); // 生成一个按钮。

c.add(button); // 加入容器中。

button.addActionListener(listener); // 按钮绑上 action。

}

/** 主要业务方法。 */

public void addBall(int priority, Color color) {

// 生成 小球(参数对象)

BallPress b = new BallPress(canvas, color); // 生成BallPress对象,携带、初始化

// 画Ball形小球,所需参数:所在容器组件,所需color--black/red.

// 小球加入 List中。

canvas.add(b); // 面板canvas 的ArrayList中 加入BallPress对象。

BallPressThread thread = new BallPressThread(b); // 生成画小球的线程类BallPressThread对象。传入BallPress对象(携带了画球所需

// 容器、color参数)。

thread.setPriority(priority);

thread.start(); // call run(), ball start to move

// 画球线程开始。--->BallPressThread的run()--->小球(参数对象).move()--->先移动,再画。canvas.paint--->BallPressCanvas类的

}

}

// 画球的线程类。

class BallPressThread extends Thread {

private BallPress b;

public BallPressThread(BallPress aBall) {

b = aBall;

}

// 画球开始。

public void run() {

try {

for (int i = 1; i <= 1000; i++) { // 画1000次。

b.move(); // 每次画时,先移动,再判断,再画。

sleep(5); // 所以移动比Bounce.java的球慢。

}

} catch (InterruptedException e) {

}

}

}

// swing面板类.

// 作用1) 本类面板对象.paint()方法---->自动绘制面板,且自动调paintComponent(Graphics

// g)方法,--->重写该方法,绘制面板(及其上组件)。

// 作用2) 该类对象 属性ArrayList balls---兼作小球(参数对象)的容器。

class BallPressCanvas extends JPanel {

private ArrayList balls = new ArrayList();

public void add(BallPress b) {

balls.add(b); // 向ArrayList中添加球。当按下按钮,添加多个球时,都保存在这个List中。

}

// 重写了 javax.swing.JComponent的 paintComponent()方法。

// paint()方法自动调用该方法。

public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;

for (int i = 0; i < balls.size(); i++) { // 循环

BallPress b = (BallPress) balls.get(i); // 从List中取出第i个球,

b.draw(g2); // 画此球。

}

}

}

/**

* 画出球。

*

* 在 canvas上画出,color色的小球图形。

*

* 属性,可用于携带画小球所需参数。

*

*

*

* @author ducongan

*

*/

class BallPress {

private Component canvas;

private Color color;

private int x = 0;

private int y = 0;

private int dx = 2;

private int dy = 2;

// 构造 初始化 容器 颜色 参数。

public BallPress(Component c, Color aColor) {

canvas = c;

color = aColor;

}

// 制定位置,画出小球。

public void draw(Graphics2D g2) {

g2.setColor(color);

g2.fill(new Ellipse2D.Double(x, y, 15, 15)); // ellipse:椭圆形

}

// 移动小球。

// 每次画时,先移动,再判断,再画。

// 该方法每次执行,画小球的起点坐标 (x,y), 每次各自+2, 即斜向右下运动。

public void move() {

x += dx; // x=x+dx; 画小球的起点坐标 (x,y), 每次各自+2, 即斜向右下运动。

y += dy; // y=y+dy;

if (x < 0) { // 小球已到左边框。保证,从左边框开始画。

x = 0;

dx = -dx; // 小球横坐标变化值取反。开始反向运动。

}

if (x + 15 >= canvas.getWidth()) { // 小球右边已经到画板右边。

x = canvas.getWidth() - 15;

dx = -dx; // 开始反向运动。

}

if (y < 0) { // 保证,从顶框开始画。

y = 0;

dy = -dy;

}

if (y + 15 >= canvas.getHeight()) { // 小球已到画板顶。

y = canvas.getHeight() - 15;

dy = -dy;

}

canvas.paint(canvas.getGraphics()); // 画出面板对象canvas----(及其上所有组件)

// //.paint()方法,自动调用

}

}

/*import java.awt.*;

import java.awt.event.*;

import java.awt.geom.*;

import java.util.*;

import javax.swing.*;

*//**

* 单线程,小球演示 搜索不到,run()方法/.start()

*//*

public class Bounce {

public static void main(String[] args) {

JFrame frame = new BounceFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to

// window

// listener

frame.show();

}

}

不懂的再问啊。。。

VB编写小游戏的全过程谁告诉我?

开始学vb时,并不知道vb可以做出动画,后来知道通过自编的子函数delay(c的库函数中的该函数)和cls可以做出许多动画,但有一个缺点就是太耗内存,就我个人认为构思应该比编程重要,因为一旦有了一个很好的构思剩下的问题都是技术问题,而我就是喜欢发现新的问题然后再想方设法解决它,通过发现问题和解决问题我可以学到许多很有用的知识和技巧。好了,现在有了一个好的构思就开始进入程序的编制。

第一步,要做成这个游戏的话必须能使小球有一个判断性的运动,然而如何处理小球的运动呢,很显然delay&cls的方法不再适用,因为整个程序运行时不停的清屏效果将很差,所以我想到了用shape控件来替代用circle命令画的小球,接着要使小球运动起来,这个问题很简单,因为 shape控件有left和top的属性,可以通过对这两个属性的控制可以很轻松的解决小球运动问题。

第二步,将对小球进行角度控制,角度可以通过shape的属性left和top来反映,通过timer控件使小球的left和top值不断加上一个值或减去一个值,小球的left和top同时改变之后就可以对小球的角度进行控制。到这里已经可以使小球运动起来,接下来的问题就是使小球能进行判断性运动。

第三步,可以这样对小球进行判断性控制,当小球的left大于窗体的scaleleft时小球的left改变成减去一个值,以此类推,小球的高度也可以进行类似的控制,现在已经很方便的对小球进行判断性运动,到这一步程序已经算是完成了一半。

第四步,既然小球可以自由的运动了,那就可以产生这样一个想法,当小球的top和left的砖块的top和left值接近到一定的范围的条件成立时使砖块的visible为false,然后小球的top和left加上接触前相应相反的值,就可以使砖块消失同时小球改变运动轨迹,这一步的实现需要解决很多技术性问题,可以在form的load事件里定义两个变量Dwd和Dhd以及两个Boolean量为Dw和Dh,通过Dwd和Dhd来控制小球向左和向上运动,当小球和窗体的边界或和砖块的的边界接触时使Dw和Dh的值进行相应的变化,通过对该两个值的控制可以使小球进行合乎反弹角度的运动,现在程序已经初步成型。

第五步,要做成这样的一个游戏,必须有一个良好的用户界面,为了使小球能接受用户的控制,我在窗体的下边界放置了一个命令按钮,该命令按钮可以通过方向键来控制,然后再加上一些判断语句使得小球command接触时产生相应的运动,这样一个用户界面就解决了。

第六步,现在只剩下程序的最后一步,就是生成砖块的排列,砖块可以用命令按钮来替代,然后用循环语句将设置好的command控件数组在程序运行时加载进来,好了,现在已经一切完成.

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。