夏庆英
摘 要:记事本应用程序的制作在Java程序设计课程的教学中具有非常典型的示范作用,该案例的制作涵盖了图形用户界面、事件处理、文件读写、泛型等重要知识点,在现代高等学校职业教育的方式手段中,Java Swing之记事本制作是很好的任务驱动案例,所以,接下来首先从搭建图形用户界面环境入手,其次,介绍图形用户界面布局管理,以及常用组件的应用技巧,最后,实现文件的保存、打开、文本编辑等功能。
关键词:Java Swing;记事本;制作
1 环境搭建
1.1 准备工作
下载软件WB_v1.7.0_UpdateSite_for_Eclipse4.4。
1.2 更新软件
打开eclipse,找到帮助菜单下的安装新软件,按照提示向导将WB_v1.7.0_UpdateSite_for_Eclipse4.4安装到eclipse中,安装结束后需要重新启动eclipse。
1.3 使用环境
重新启动eclipse,新建Java 项目,命名为NotepadDemo。
2 界面布局
當一个窗口中的组件较多时,界面应该简洁整齐,布局合理。Java采用布局管理器对容器中的组件进行相对布局管理,当改变容器大小时,或者改变组件的大小,或者改变组件之间的相对位置,保证组件不会被遮盖并且容器没有空白区域。
Java提供多种风格和特点的布局管理器,每种布局管理器指定一种组件之间的相对位置。Java.awt布局管理器类主要有FlowLayout流、BorderLayout边、GridBagLayout网格包及GridLayout风格。
布局是容器类的特性,每种容器都有一种默认布局。Window容器类的默认布局是BorderLayout,如果一个容器需要改变其默认布局管理器,可以调用Container容器类的setLayout( )方法。本案例采用的布局管理器为内容网格默认的BorderLayout。
2.1 记事本之菜单制作
窗口菜单是相对于窗口的,它出现在窗口的标题栏下,总是与窗口同时出现。窗口菜单由JMenuBar菜单栏、JMenu菜单和JMenuItem菜单项等组件组成。窗口上添加菜单栏,菜单栏中添加菜单,菜单中添加菜单项或子菜单,这样形成了窗口菜单的多层结构。菜单栏添加在窗口上方,不受布局管理器控制。
记事本案例的菜单有文件和编辑两个,文件菜单对应的菜单项为新建、保存、打开、退出,编辑菜单对应的菜单项为撤销、剪切、复制、粘贴、恢复。
菜单项新建、保存、打开、退出、撤销、剪切、复制、粘贴、恢复对应的变量名为mnuItemNew、mnuItemSave、mnuItemOpen、mnuItemExit、mnuItemUndo、mnuItemCut、mnuItemCopy、mnuItemPaste、mnuItemRedo。
2.2 记事本之工具栏制作
添加工具栏对象组件,在其上添加字体选择列表框、设置文字大小列表框、颜色按钮组,以及字体样式复选框。颜色按钮组中具有红色、绿色、蓝色三个单选项,字体样式复选框包含粗体、斜体、下划线三个复选项。
2.3 记事本之编辑区制作
向内容网格中添加JTextArea文本域组件,再为文本域添加一个垂直滚动条。具体的操作如下:JTextAreatextArea=new JTextArea;
JScrollPane scroll=new JScrollPane(textArea);
getContentPane().add(textArea,BorderLayout.CENTER);
getContentPane().add(scroll);
3 关键技术之事件处理机制
所谓事件处理,通俗地说就是如何处理用户应用程序中的事件。而所谓事件,就是指像单击鼠标、键盘输入、单击菜单、文本区域内输入文本、单击按钮、单击复选框、单击列表框、单击单选按钮等组件,这些事件的发生必须要处理。处理之前一定要理解两个概念,什么是事件源和事件。事件就是指用户对组件发生的动作,例如,单击红色单选按钮后文本域内的文本颜色为红色,这个单击动作就是事件。事件源就是触发动作的组件,例如,前面提到的红色单选按钮就是事件源。事件处理,简单地说,就是用户对事件源进行操作,操作了事件源就产生了事件。接下来,就是用户触发事件源产生了事件,该如何处理这些事件呢?此时需要事件监听者,即系统接收到所产生的事件,然后根据这些事件作相应的处理。
事件类的种类很多,其中包括了动作事件(ActionEvent)、鼠标事件(MouseEvent)、焦点事件(FocusEvent)等。以菜单事件为例来说明事件处理的步骤及方法,首先,NotepadDemo要实现ActionListenter接口,并向该类中添加接口中的抽象方法public void actionPerformed(){},其次,对事件源(mnuItemSave等)添加事件侦听addActionListener(this),最后,对事件进行处理,完成对文件的保存功能等。
4 关键技术之文件读写
在计算机系统中,数据流具有方向性,对数据流的基本操作有读操作和写操作,但一个数据流只能进行读或写中的一种操作,即对输入数据流只能进行读操作,对输出数据流只能进行写操作。在Java中有字节流以字节为单位读/写和字符流以字符为单位读/写两种方式,在记事本的实例制作中文件读写的对象是文本,所以采用以字符为单位的读写方式。
①定义文件读写字符输入输出流,为提高读取效率流采用缓冲技术,即定义缓冲字符输入输出流,定义要保存或打开的文件对话框,定义打开或保存的文件对象,该对象要由文件对话框获得的路径和获得的文件名来确定。
②编写保存菜单和打开菜单的事件处理代码时要注意,在文件读写过程中的异常处理使用try-catch-finally语句来捕获和处理一个或多个异常。
③关闭所有的输入流和输出流。