毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
JAVA Swing的图形化界面开发+源代码(2)
1编译环境与技术
1.1 JAVA
JAVA语言,前身是OAK语言。由sun公司推广。具有“一次编写,到处执行”的特点[1]。优点在于面对对象,语言可读性强。
1.2 Eclipse
用于编写JAVA的IDE。本身具有开源性,可以添加各种插件,方便于编写程序。[8]
2 课题的提出与设计
参考的游戏: minecraft。
《我的世界》是一款风靡全球的高自由度沙盒游戏,由瑞典Mojang AB和4J Studios开发,于2009年5月13日发行。2014年11月6日,该游戏被微软收购。2016年网易取得了该游戏在中国的代理权。
3 基础框架设计
3.1 图形化界面技术
3.1.1 JAVA SWING技术
通过JAVA SWING扩展组件,可以实现对屏幕进行绘制,并且通过与组件的互动来控制程序数据。
3.1.2 GUI设计
GUI模块大体分为3个类。组件(Component)、容器(Container)与布局
管理
器(LayoutManager)。[4]
组件是最基本的组成部位,可以以图形化的方式与用户交互。常用的有Button,Canvas等。本软件基本用的是Canvas。
容器主要负责容纳其他组件与容器。
布局管理器处理容器中的各个组件之间的位置关系。常用有边界布局(BorderLayout)、卡片布局(CardLayout)等。[5]
本软件采用一个容器Jfram存放组件Canvas。一个Canvas用于绘制主界面。一个用于绘制背包界面。两个Canvas用CardLayout布局管理器控制。通过键盘监听器控制布局管理器。从而实现界面的切换。
Cardlayout布局管理器能让多个组件共享一个空间,就像卡片一样叠在一起。通过自带的方法能够切换组件显示状态。[12]
一个Canvas的好处是结构明了,用户只用在一个组件上面处理数据,各个组件不会重叠,不会产生冲突。
主界面演示
3.1.3 Canvas
Canvas是一个用来绘制图像的组件。使用的时候创建一个Graphics对象获取它的图形上下文,并且覆写父类的paintComponent()方法,就可以在里面进行绘制工作。
每一次绘制都有覆盖顺序,一般是背景层、前景层、人物层、UI层。背景层的优先级最低,被别的层覆盖。
3.1.4 Graphics对象的基本绘制函数
drawImage():用于调用图像文件并绘制到组件上。使用的时候需要读取本地图像文件。并且声明异常。
drawSrting():用于绘制直线,简单的绘制函数。用于绘制UI的边界。
3.2 多线程
3.2.1 基本概念
早期的
计算机
一般都是单线程。也就是执行完一个计算进行下一个。这种计算就是单线程。[11]进行简单重复的计算可以使用这种。但是软件里面要同时计算人物与地图每一块的状态等,所以需要多个线程进行同时计算。[6]线程因为共享相同的地址空间并共同构成一个大的进程,所以同一进程中的线程间的通讯是非常简单而有效的,上下文切换非常快并且是整个大程序的一部分切换。[3]
3.2.2 基本实现方法
继承Thread类。
实现Runalbe接口。
由于Java可以实现多个接口但是只能单继承,继承方法扩展性不强。故用第二种方法编写类。[10]
3.2.3 基本线程
地图线程,记录各个物体的状态。
共3页:
上一页
1
2
3
下一页
上一篇:
jsp可视化工时管理系统设计+源代码
下一篇:
jsp+mysql模拟网络银行系统设计+源代码
Android手机考勤平台的设计与实现
基于android的环境信息管理系统设计
java+mysql班级评优系统的设计实现
Python+mysql宠物领养平台的设计与实现
ASP.NET飞翔租贷汽车公司信...
基于激光超声检测金属材...
多频激励下典型非线性系统的振动特性研究
浅论职工思想政治工作茬...
STC89C52单片机NRF24L01的无线病房呼叫系统设计
从政策角度谈黑龙江對俄...
酵母菌发酵生产天然香料...
浅谈高校行政管理人员的...
上海居民的社会参与研究
压疮高危人群的标准化中...
提高教育质量,构建大學生...
AES算法GPU协处理下分组加...
基于Joomla平台的计算机学院网站设计与开发