- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第20章 写字板
第20章 写字板 本章将围绕如何利用Java Swing实现一个写字板展开讨论,首先介绍画图板的需求,然后展示最终要实现的效果与功能;接着介绍程序的设计思路以及类结构图;最后详细的介绍各个主要模块的详细实现细节。 20.1 需求分析 在Windows系统中集成也提供了一个使用实用的写字板程序,其截图如图20-1所示。 20.2 成品预览 程序默认打开的页面如图20-2所示。 20.3 项目总体设计 本节将详细说明整个程序的设计思路,首先通过浏览这个程序的完整类图获得整个应用程序的框架结构;然后再展开介绍各个类的功能分配以及采用这种设计方式的原因。通过本节的介绍,读者将进一步了解写字板的原理,为后续章节详细介绍做准备。 20.3.1 类图概览 整个程序的主要由图20-7中六个类构成,类MockNotePad为窗口类,并且负责构建工具栏、内部窗格、菜单、以及事件定义等。类AlignListener则用于处理左、中、右对齐按钮的事件响应。类MyFrame是MockNotePad类的内部类,该类继承了JInternalFrame,用于创建包含富文本输入框的内部窗格。类MyUndoManager负责文本编辑的撤销和重做操作。 20.3.2 设计思路 程序的核心模块是MockNotePad类,该类既承载了程序窗口的功能,又作为各个按钮、工具栏的创建场所。窗口内的组件按照类型可以分成菜单、工具栏、内部窗格。 20.4 Constants类的实现细节 Constants类包含了所有菜单项的功能名称以及缩略图标的路径,这些信息均以私有成员变量的形式定义于Constants类内部。 20.5 主窗体的实现 写字板的主窗体是整个程序的操作界面,它要负责界面上的菜单、工具栏、内部窗体等组件的创建以及对应的时间处理机制实现,是本程序中代码量最大且最为复杂的一个类。笔者将根据组件类型分节介绍各个组件的创建。 20.5.1 主窗体成员变量 主窗口类为MockNotePad,该类将工具栏、菜单栏以及事件HashMap集作为其内部的私有成员变量,如下所示。 20.5.2 事件处理机制 在介绍其他组件的初始化之前,首先需要说明下所有Action的创建,下面是与文件菜单底下子菜单相关的Aciton的创建代码。 20.5.3 菜单的创建 程序的主菜单包括文件、编辑、对齐、插入四个,每一个主菜单下面又包括多个子菜单,每一个主菜单下面的子菜单由方法createMenu创建,方法createMenu的源码如下所示。 20.5.4 工具栏的创建 工具栏中每个按钮的创建由方法buildToolButton完成,下面是该方法的代码细节。 20.5.5 文件的保存与打开 格式化文本的保存在Java中一直没有处理好。目前仅能保存有格式文本,但是不能保存图片等其他资源。即使是有格式的文本,也存在部分“臭虫”,例如“对齐格式”不能被保存。 20.6 编辑重做撤销管理器实现 编辑管理器有类MyUndoManager负责,该类继承自javax.swing.undo.UndoManager类。此类也是一个监听器,通过JTextPane的getDocument方法获得一个javax.swing.text.Document类实例,然后利用该实例的addUndoableEditListener方法将重做管理器作为其编辑监听器。 20.7 对齐监听器 写字板的对齐监听器由一个单独的AlignListener类通过实现ItemListener接口实现的,然后程序的对齐菜单根据选择的结果判断应该执行哪一个对齐操作。 20.8 小结 写字板也是Window系统中自带的一个应用程序,写字板与记事本最大的区别在于写字板中的文档不仅仅可以输入文字,还可以设置字体的风格、大小等,这需要有富文本编辑器辅助实现。Java已经有一个现成的富文本编辑器JEditorPane,本章正是利用该编辑器实现写字板功能的。
您可能关注的文档
最近下载
- 小学体育_队列队形教学设计学情分析教材分析课后反思.doc
- 中建项目商务策划汇报模板.pptx
- 公路中小跨径钢-混组合梁桥标准图集(制订)》技术方案报告.docx
- “设计思维与方法”教案.ppt
- 大职赛生涯闯关参考答案.docx VIP
- 2022《美宜佳公司营运资金管理存在的问题及对策研究》开题报告文献综述(含提纲)3200字.docx VIP
- 长垣市人民医院西学中培训班《方剂学》考试.pdf VIP
- 苏教版一年级科学上册4.1《自然物与人造物》(课件).pptx
- 电子商务招聘简章模板.pdf
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
文档评论(0)