java图形界面基础题记事本模拟
需求分析
虽然微软已经提供了一个记事本,但它的功能却比较简单,如不能改变背景的颜色,不能改变字体的颜色,对外观不能更改。因此,我根据这些需求编写了一个记事本模拟器。
9.2 概要设计
根据微软记事本的模板,我加入了一些它不能支持的功能,如背景的颜色、字体的颜色、外观的改变,其实这也是根据一些软件的特殊功能所设定的。这个记事本模拟器能够实现微软记事本的一些基本功能,比如:文件操作功能、编辑功能、格式功能、帮助功能。在文件操作功能中,有新建、保存、另存为、打开、退出功能;在编辑功能中,有撤销、剪切、复制、粘贴、删除、全选、插入时间/日期功能;在格式功能中,有字体、颜色、背景、外观功能;在帮助功能中,有帮助主题、关于记事本功能。
9.3 详细设计与编码见上传源程序
9.4 调试分析
在这个实验中,主要是先确定此记事本的构造框架,而我是根据微软的记事本程序来模拟的。
在新建文件时,要确定保存操作,而保存操作又得依靠另存为操作,因为有可能是第一次保存;打开操作得依靠保存操作,因为你写原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/ 入了额外的字符。在打开操作中,你要确定打开文件的URL,根据URL确定标题。同时也根据URL实现保存文件的地址。
在编辑文本时,若要实现撤销数据,得先设置一个链表,用于存放剪贴板上的内容。而剪贴板要存放复制、剪切、粘贴、删除内容。
在格式转换中,实现字体的设置,要根据所得到的字体改变记事本上的显示。而我发现,如果对汉字进行字体的改变时,有可能会存在不兼容的情况。
而对英文字母进行操作时,不存在这样的问题,如下图所示。
也许是Java语言的设计者对汉字的存储时有特定的要求吧。同时其它的操作得根据已有的类进行套用,如改变字体颜色时,Java中已经存在了一个JColorChooser类,这个类主要是针对字体颜色的改变而设计的,所以我们大可不必再设计一个对话框实现这个功能,因为我也这个本事实现这么复杂的功能。
改变背景的颜色时,我得先得到当前的背景颜色,主要是用于还原取消该背景改变时所用。
对外观进行改变时,要得到Java所设计的所有外观。用Java所提供的UIManager类可以实现这样的功能,但要记住此类操作时有可能会抛出异常,所以得使用try-catch语句。
在帮助功能中,主要是使用了两个对话框的构造,其它的就是写入内容而已,比较简单。对话框的构造可以使用JDialog类。
9.5 用户使用说明
用户根据自己的要求进行相关的操作。
9.6 设计心得
通过这次实验,让我对Java的图形界面有了新的认识。在设计这个程序时,因为我已经有了一定的图形界面编程的基础,所以对这个程序的基本框架有了一定的认识。有了基本框架,我就可以实现组件的功能。其实这些功能的实现是通用的,只不过所实现的功能有所不同而已。从中我也明白了一个道理,图形界面的设计没有想象中的那么难,只不过是程序的复用而已。而我所设计程序的代码冗余度还真的比较大。我也没有办法对此进行优化,因为毕竟我学Java还处在初级阶段,对Java的高级应用还没那么地熟练。
做这道题目时,我主要参考了《Java2核心技术》这本书,因为这本书对Java的Swing编程比较详细。我只不过是根据这个基础,对记事本的界面进行整合。从而构造出比较完善的记事本模拟器。1829