毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
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模拟网络银行系统设计+源代码
基于Apriori算法的电影推荐
java+mysql通用试题库系统后台设计与实现
PHP+IOS的会议管理系统的设计+ER图
数据挖掘在电子商务中的应用
数据挖掘的主题标绘数据获取技术与实现
基于PageRank算法的网络数据分析
基于神经网络的验证码识别算法
AT89C52单片机的超声波测距...
神经外科重症监护病房患...
医院财务风险因素分析及管理措施【2367字】
中国学术生态细节考察《...
承德市事业单位档案管理...
公寓空调设计任务书
国内外图像分割技术研究现状
志愿者活动的调查问卷表
C#学校科研管理系统的设计
10万元能开儿童乐园吗,我...