版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA项目实训文档项目名称:在 Netbeans 下实现记事本程序 设计内容:仿照 windows 提供的记事本设计一个功能类似的程序 具体设计:一、建立项目1、开始之前使用NetBeans IDE开发JAVA程序,需要安装如下软件:l J2SE(TM) Development Kit (JDK) ,版本最好是以上l NetBeans IDE5.5.1这两个软件都是免费的,可以到网上下载。下载完毕后需要先安装好JDK然后再安装NetBeans ,安装完毕后,就可以打开 NetBeans IDE5.5.1 ,开始我们的学习历程了。2、建立记事本项目NetBeans是以项目的方式来管理程序的,通
2、常一个程序就是一个项目。所以我们创建JAVA 程序的第一步就是建立项目。(1)选择NetBeans的文件菜单一一新建项目,根据向导(如图 1所示)选择“常规”, “ java 应用程序”,然后转入下一步。(2)向导的第二步如图 2所示,需要设置项目的一些信息。 我们把项目名称定为 NoteSys, 设置好项目保存位置,此时先不创建主类,所以去掉创建主类复选框的对号,单击完成即 创建好一个项目(3)项目建立之后 NetBeans界面如图3:知识点整理:l从图1可以看到,使用NetBeans还可以创建web程序和企业程序,我们这里创建的是 桌面应用程序。l 可以在建立项目时创建主类,也可以不创建,
3、留到项目建立好后再创建l项目建立好之后就可以在 NetBeans IDE环境中看到刚才创建的项目(图 3)。NetBeans 的文件组织分为两种方式:项目组织方式和文件组织方式。项目组织方式中整个项目(NoteSys)包括:源包、测试包、库和测试库,源包再由若干 java 文件构成。文件组织方式按照实际的物理存放目录组织,即项目在硬盘上的存放路径。整个项目(NoteSys)包括src、build等几个文件夹。l 项目建立好后,在源包上单击右键可以创建包和其他的 java 文件,在创建的包上单击 右键也可以创建各种 java 文件,见图 4经过这样几个步骤,我们就建立了一个桌面程序项目NoteS
4、ys,接下来就是在IDE中对项目进行开发,首先我们先看如何建立程序的界面。二、构建记事本 GUI 界面NetBeans IDE 的 GUI 生成器经过了不断的改进,截至 NetBeans 版本时,它已变得更 为强大、更具直观性了。 用户无需深入了解布局管理器, 就可以生成具有专业外观的 GUI。 在NetBeans中以可视化的方式来生成界面,我们只需将组件放置在所需的位置,就可以 完成窗体布局的设置。下面的步骤将带领大家制作记事本的界面,也会让大家领略到 NetBeans中构建GUI界面的方便和高效。1 、 建立窗体在项目视图的源代码包上单击右键创建一个包(包名为),然后在包上单击右键创建一个
5、 jFrame 类(类名为),此即为记事本的窗体,我们将在该窗体上添加其他组件构建记事本 的界面。如图 5根据图 5, NetBeans 的 GUI 生成器的各种窗口包括:l 项目和文件区域:显示整个项目的文件,采用项目和文件两中方式组织。可以通过该窗 口管理 java 文件,包括对 java 文件的新建,删除,编译,运行等操作l 检查器:提供所有组件的表示,包括在应用程序中表示为树状分层结构的可视和非可视 组件。并允许您在可用面板中组织这些组件,而且添加组件,设置组件的属性和事件也可 以在检查器内完成。l 设计区域: GUI 生成器用于创建和编辑 Java GUI 窗体的主窗口。通过使用工具
6、栏的 “源”和“设计”切换按钮,可以查看类的源代码或其 GUI 组件的图形视图。l组件面板:可用组件的可定制列表,包含 JFC/Swing、AWT和 JavaBean组件的标签以 及布局管理器。 此外,还可以使用定制器来创建、 删除和重新排列组件面板中显示的类别。l “属性”窗口。显示 GUI 生成器、“检查器”窗口、“项目”窗口或“文件”窗口中 当前选定组件的属性。l 调试和输出窗口:位于窗口的最下方,显示调试程序的信息和输出信息。 注意:如果单击“源”按钮, IDE 将在编辑器中显示应用程序的 Java 源代码,其中包含 GUI 生成器自动生成的代码部分,这部分以蓝色区域表示,称为“被保护
7、的块”。被保护 的块是“源”视图中无法编辑的受保护区域。处于“源”视图中时,只能编辑出现在编辑 器白色区域中的代码。如果需要对被保护的块中的代码进行更改,请单击“设计”按钮以 便从 IDE 的编辑器切换到 GUI 生成器,然后在生成器中对窗体进行必要的调整。保存更 改时, IDE 将更新文件的源代码 窗体建立好了,整个界面的基础也就有了。下面我们就可以在该窗体上添加其他组件,来 完成整个界面工作了。2、添加菜单(1)加入菜单l在组件面板中选择JMenuBar,将其拖拽入我们的JFrame主窗体。l 在设计视图时,屏幕右侧的检查器会检查出所有的可视组件,我们在检查器中找到刚才 推拽的JMenuB
8、a,点击右键,在右键弹出菜单中选择【更改变量名称】,此时弹出重命 名窗体,我们在新建名称中填写jmb,然后点击“完成”按钮,此时我们的JMenuBar就成 功创建了。l 对于每个菜单来说,还需要创建一个菜单对象,然后把此顶层菜单添加到菜单栏中,接 着在菜单对象中添加菜单项、分隔符以及子菜单。对于【文件】P【新建】而言,我们应 首先将【文件】这个菜单对象创建,然后将【新建】菜单项添加到【文件】菜单选项中。 参考图 6,具体步骤如下:i. 在检查器中,右键点击jmb,在弹出菜单中,选择【添加JMenJ,此时检查器中在jmb 下面添加了一个新的JMenu菜单对象。ii. 右键点击JMenu菜单对象,
9、在弹出的右键菜单中选择【更改变量名称】,将其新建 名称更改为“ fileMenu ”。iii. 右键点击“ fileMenu ”菜单对象,在弹出菜单中选择【添加】P【JMenultem】(可 在此菜单中添加菜单项,分隔符,子菜单等),此时在“ fileMenu ”菜单对象中添加了一 个菜单项,我们将此菜单项更名为“ newMen”u 。这样文件菜单和新建菜单项就建立好了。 知识点整理:l 添加组件的方法( 1)到组件面板单击需要的组件(2)移动鼠标到窗体,此时刚单击过的组件会跟随鼠标移动,并且靠近窗体边缘或其他 组件附近时,会出现虚线来指示放置组件的位置。(3)确定好放置位置后,再次单击鼠标即
10、可把组件添加好l 修改组件大小 添加组件之后,单击组件,组件周围会出现一些白色方块,把鼠标移动到其上,拖动鼠标 则可改变组件大小 右击组件,在菜单中选中“自动调整大小”的垂直和水平菜单,则运行程序时,组件会随 着窗口的大小变化而变化。l 对齐组件添加组件时, NetBeans 提供了虚线指示,所以很容易对齐组件。此外,按住 shift 键选择 多个组件,使用设计区域上方的一组对齐按钮也可对齐组件l 菜单组件NetBeans中通过JMenuBar组件来创建菜单,添加JMenuBar后,通过右击检查器中的JMen uBar可以添加顶层菜单,通过右击顶层菜单可以添加菜单项和分割线等,而顶层菜单 和菜
11、单项的变量名称和显示文字等可以通过其右键菜单来设置。( 2)关于菜单的几个操作l 给菜单添加图标 菜单项显示图标会使菜单看上去更加美观,而且含义清晰的图标也会增加程序的易用性, 所以我们有时需要给菜单添加一些图标。方法如下:右击源包建立一个包(名称为 res ),通过该包的物理路径向该包内放一些图标,然后打 开菜单项的属性窗口,通过菜单的 ico 属性,指定类路径选项,然后选择包 res 中的图标 文件就可以把图标加入到菜单中。下面以新建菜单为例:在检查器中,右键点击“ newMen”u ,在弹出菜单中,选择【属性】,此时弹出一个可以 修改属性和事件的对话框,我们选择属性选项卡,找到 ico
12、属性,点击 ico 属性对应的按 钮,如图 7: 此时弹出一个图片选择对话框,我们选择类路径,并在当前类路径下选择图片文件,点击 “确定”按钮,这时我们菜单的图片就添加上了l 给菜单设置加速键加速键的作用就是程序运行中可以通过使用 ALT加字母的方式快速打开菜单。NetBea ns中, 在菜单的 text 属性指定的名字后面加上一个括号和一个大写字母,例如新建的 text 为“新建(N) ”然后把属性mnemonic设置成刚才指定的大写字母即可,此时通过 ALT加该字 母就可以访问该菜单了l 给菜单设置快捷键 菜单的快捷键可以使用户用快捷键来执行某个菜单的操作。切换到代码编辑器窗口,在代 码编
13、辑器中创建一个方法 setMenuAccelerator ,在方法中为需要设置快捷键的菜单加入 设置语句即可,新建菜单的快捷键设置如下这样,当我们按下 Ctrl+N 时,就可执行新建命令了。最后在主类()的构造方法中调用 该方法即可。知识点整理:l NetBeans 中,在可视化的方式中就可以顺利完成菜单的各种复杂设置,包括顶层菜单、 菜单项、分割线等的添加以及其他菜单的相关设置l 菜单使用的图标我们事先放到了一个包内,然后以类路径的方式加入到了菜单中,这样 类路径并不依赖某个具体路径,所以使程序易于移植。(3)按照刚才的方法给记事本添加表 1 所示的菜单 菜单项 菜单变量名 快捷键 加速器文
14、件】、 e【新建】【fileMenu 】、 e【newMen】uFe N Ctrl+N文件】、 e【打开】【fileMenu 】、 e【openMenu】Fe O Ctrl+O文件】、 e【保存】【fileMenu 】、 e【saveMenu】Fe S Ctrl+S文件】、 e【退出】【fileMenu 】、 e【exitMenu】Fe X编辑】、 e【剪切】【editMenu】、 e【cutMenu】Ee T Ctrl+X编辑】、 e【拷贝】【editMenu】、 e【copyMenu】Ee C Ctrl+C编辑】、 e【粘贴】【editMenu】、 e【pasterMenu】 Ee P C
15、trl+V编辑】、 e【全选】【editMenu】、 e【selectAllMenu 】 Ee A Ctrl+A格式】、 e【颜色】【editMenu】、 e【colorMenu】Ee F Alt+F帮助】、 e【关于】【helpMenu】、 e【aboutMenu】He A3、添加工具栏NetBeans 中,工具栏由 JToolBar 组件和按钮( JButton )组件组合起来实现的。我们首先 在组件面板中找到 JToolBar 组件,并将其拖入我们的主窗体,然后根据需要在 jtoolBar 中放置一些按钮,设置好按钮的 ico (图标)和 tooltiptext (按钮提示)属性 设计表
16、 2 所示的工具栏放置顺序 变量名称 功能 工具提示1 newButton 新建文件 新建2 openButton 打开本地文件 打开3 saveButton 保存文件到本地 保存4 cutButton 剪切 剪切5 copyButton 拷贝 复制6 plasterButton 粘贴 粘贴4、加入文本框NetBeans 提供几个显示编辑文本的组件,我们使用 JTextArea 来实现。从面板中找到 JTextArea ,加入到窗体上 这样,我们的记事本界面就制作完毕了, 在项目窗口中,找到,右击选择编译文件, NetBeans 则对该文件进行编译,编译成功后,在运行文件即可启动程序,运行效果
17、如图8:三、打开与保存在上一节中我们已经完成了记事本的界面,也从中学习了一些构建GUI的方法和技巧。从本节开始将要讨论记事本的功能开发,先看如何打开和保存文件。当然在叙述过程中会讲 解如何使用NetBeans的代码编辑器的一些用法。1、 打开文件 使用记事本打开一个已有的文本文件需要涉及到如下问题: l 如何控制要打开文件的类型,即只能打开文本文件l 打开对话框如何实现l 如何从硬盘上读入文件内容到记事本中 下面依次讨论这三个问题的解决方案(1)控制要打开文件的类型 FileFilter 类JAVA中的FileFilter类可以很好的解决这个问题,FileFilter是一个没有默认实现的抽象类
18、。 一经实现便可以设置在 JFileChoose 上,以阻止不需要的文件出现在目录清单中。 所以我们自己写一个类继承自 FileFilter ,然后实现 FileFilter 类的方法即可,具体如 下:l 右击包新建一个类(名称为 TextFilter ),此时该类的内容如下l 在类名 TextFilter 后输入 extends FileFilter ,即继承自 FileFilter 类。此时 NetBeans 代码编辑器会自动扫描代码,发现该行代码的错误并且用红线标出,这时把鼠标移动到该行, NetBeans 会提示你错误的原因:由于我们并没有引入 FileFilter 类就直接使用了,
19、所以这里提示“找不到 FileFilter 类”,单击该行任意位置会在行左边出现一个灯泡, 单击灯泡, NetBeans 会给出你修改错误的方法,现在从提示里选择“添加的import ”,NetBeans 就会自动把对 FileFilter类的引入加上,而不需要我们去手动添加。此外,因为 FileFilter 类是一个抽象类,所以必须实现其所有的抽象方法,因此现在还提示有错 误,再次单击该行,从灯泡的提示中选择“实现所有抽象方法”, NetBeans 就会自动把 FileFilter 的所有抽象方法添加上,此时代码窗口内容如下: 其中标红的都是代码编辑器自动添加的。从此处也可以看出使用NetB
20、eans 写代码会非常的省时省力。l 最后我们实现 TextFilter 类的抽象方法,代码如下这样就实现了一个只显示“ txt ”或“ doc”类型文件的过滤器类 TextFilter ,用他可是方 便的过滤文件。知识点整理:l 代码编辑器可以自动查找代码错误,并标出红线提示,此时把鼠标放到错误行上面会出 现错误原因的提示l 单击错误行前的小灯泡,代码编辑器会给出修改错误方案并能自动修复错误l 书写代码时可以不用过分考虑代码的缩进格式,代码写完后使用“ Ctrl+Shift+F ”组合 键,代码编辑器会自动调整代码格式(2)打开已有文件 jFileChooser 组件NetBeans 提供了
21、一个文件选择组件 jFileChooser ,为用户选择文件提供了一种简单的 机制,使用他可以方便调用打开对话框和保存对话框。我们首先添加一个 jFileChooser , 其用法在下一步中介绍。添加该组件的具体操作是:在项目中选择 WinNote,切换到设计视图,此时检查器中会显示WinNote的所有组件以及组件之间的组织层次,由于打开对话框是独立的,并不依附主窗口,所以我们把该组件添 加到“其他组件”内,在“其他组件”上右击,从组件面板上添加 SWINGjFileChooser ,即可把 jFileChooser 添加到项目中,此后我们就可以使用 它了。(3)读入文件 java 中的 I/
22、O 操作JAVA中为实现文本输入输出提供一些专门的类,常用的有FileReader、FileWriter和BufferedReader 、 BufferdWriter 几个类。这里我们综合利用 BufferedReader 、 FileReader 以及刚才的 jFileChooser 组件来完成对文件的打开操作,此外,打开操作是通过打开菜 单来激发的,所以我们首先实现打开菜单的事件,参见图 9l切换到Win Note的设计视图l 到检查器窗口找到“打开”菜单并选中(此时右击也可添加一个事件)l 右侧的属性窗口会显示该菜单的相关信息,选择事件,该窗口就列出了该菜单支持的所 有的事件l 找到 a
23、ctionPerformed 事件,单击后面的按钮,就可以打开添加事件的对话框,添加一 个事件即可添加好事件后,给事件添加如下代码: 知识点整理:l NetBeans中通过属性窗口可以方便的给组件和菜单添加事件和管理事件,而不用考虑过 多的事件内部细节l JAVA 中的输入输出(1) FileReader 类是用来读取字符文件的便捷类, 在给定了需要读取数据的文件名的情 况下创建一个新 FileReader ,然后使用其 read 方法可以读取字符流,但其所作的每个读 取请求都会导致对基础字符或字节流进行相应的读取请求,效率很低。( 2) BufferedReader 从字符输入流中读取文本,
24、缓冲各个字符(3) 根据(1() 2),我们可以用 BufferedReader 包装 read() 操作效率很低的 FileReader , 采用如下方式:BufferedReader in = new BufferedReader(new FileReader(filename);这样,用 FileReader 读取指定的文件,然后用 BufferedReader 来缓冲,最后在用 read 或 readline 方法读取文件。避免了每次调用 read() 或 readLine() 都会从文件中读取 字节,并将其转换为字符后返回的低效做法 此外, FileWriter 是写入字符文件的便捷
25、类,用于写入字符流。 BufferdWriter 类提供缓 冲,因此也可以综合使用这两个类完成写入文件的操作。2、保存文件 保存文件的实现和打开非常类似,也是通过 TextFilter 类控制保存的文件类型,通过 jFileChooser 来调用保存对话框, 通过文件输入输出操作来写文件。 具体做法请读者自己 研究。四、其他功能的实现 有了打开与保存,我们的记事本已经可以操作文件,本节将带领大家完成记事本剩余的几 个重要功能。1、剪切操作 添加好剪切菜单的 actionPerformed 事件,在事件内写如下代码 ();其中 editor 是文本框 jTextArea 。这样就实现了剪切操作,
26、其余的全选、复制、粘贴与此 类似,不再细说2、文本颜色NetBeans 提供了一个 jColorChooser 组件,使用它可以方便的实现颜色设置。 该组件显示 有模式的颜色选取器,在隐藏对话框之前一直阻塞。如果用户按下“0K按钮,则此方法隐藏/释放对话框并返回所选颜色。如果用户按下“Cancel”按钮或者在没有按“ 0K的情况下关闭对话框,则此方法隐藏 /释放对话框并返回 null 。因此,我们添加一个 jColorChooser ,利用它选取颜色即可。参见图 10 在检查器窗口内右击“其它组件”,添加一个 jColorChooser ,修改变量名为 ColorChooser ,然后添加颜色
27、菜单的事件,在事件内加入如下代码: 第一句代码创建了一个 Color 对象,该对象返回了 jColorChooser 组件中被选择的颜色(jColorChooser的构造方法中的三个参数分别是:对话框的父Component,对话框标题和显示颜色选取器时的初始 Color 设置),第二句代码则是设置文本颜色。3、撤销操作JAVA中提供了撤销管理器类UndoManage,通过该类提供的方法,我们可以方便实现撤销与恢复操作,具体操作如下:l首先声明一个UndoManager的对象,代码如下:UndoManager undoManager = new UndoManager();l 因为撤销和恢复都是
28、针对文本框进行的,所以需要对文本框 jTextArea 进行监视,打开 文本框的 AncestorAdded 事件,填入如下代码 这样撤销管理器就有效的对文本进行监视,一旦需要撤销或恢复操作,直接调用撤销管理 器的方法即可l 最后在撤销菜单的 actionPerformed 事件中写一句“ (); ”,在恢复菜单的 actionPerformed 事件写一句“ (); ”就可以了。4、新建与退出 新建与退出都会涉及到如下两个问题:l 如何判断文档是否发生变化l 若文档已改变,如何调用对话框询问用户是否保存当前文档对于第一个问题,文本组件 jTextArea 没有提供相关方法,但是我们可以定义一
29、个全局变 量,让他存储初始的文档内容,然后新建或退出时在比较该变量和当前文档内容,相同则 不必询问是否保存,否则调用对话框询问是否保存。对于第二个问题,使用 jOptionPane 组件即可实现, JOptionPane 有助于方便地弹出要求 用户提供值或向其发出通知的标准对话框,对 JOptionPane 组件的方法调用通常有如下几 个:方法名 描述showConfirmDialog 询问一个确认问题,如 yes/no/cancel 。showInputDialog 提示要求某些输入。showMessageDialog 告知用户某事已发生。showOptionDialog 上述三项的大统一
30、(Grand Unification) 。 每个调用方法的参数很多,这里不再细说,请查看 API 手册,我们使用 JOptionPane 组件 的第一个方法 showConfirmDialog 来实现新建和退出需要的对话框。(1)新建代码(2)退出 退出代码与新建类似,也是判断文档是否改变,然后通过对话框提示用户是否保存,然后 在退出。5、帮助与关于窗口的制作 关于的主要目的是通过一个窗口展示有关于程序的一些信息和作者的相关信息,这里我们 建立一个 jPanel 窗口类,然后在窗口上添加 JTabbedPane、 jPanel 、jLabel 等几个组件 就可以实现了。具体操作如下:l 右击包
31、,添加一个 jPanel 窗口类l找到检查器中的jPanel,右击,添加JTabbedPane组件,再右击JTabbedPane添加两 个jPanel组件,这时JTabbedPane就有了两个选项卡:tabl和tab2,这两个选项卡是由 jPanel 组件构成的。最后在分别给两个选项卡添加几个 jLabel 。l jLabel 组件可以显示文字和图片,所以根据情况添加相关信息就可以了,最后通过主类WinNote 的关于菜单调用该窗口即可。效果如图 11: 知识点整理l 全选、复制、粘贴和剪切等操作使用 jTextArea 组件自身的方法就可以实现l 文本颜色使用 jColorChooser 组件实现。我们并没有讲解如何实现字体设置功能,因为 NetBeans 没有提供字体对话框组件, 需要我们自己设计实现字体对话框的功能, 因为有些 复杂,所以没有讲,请参看我的源代码l撤销操作有撤销管理器类UndoManage实现,可以连续多次撤销或恢复l 新建与退出用到了 JOptionPane 组件,它可以方便地弹出要求用户提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级《分数加减混合运算》教学设计
- 小学数学一年级上册:10以内口算过关练习题
- 《瞳孔大小的临床见》课件
- 湖南省株洲市2025届高三上学期教学质量统一检测物理答案
- 高考新课标语文模拟试卷系列之66
- 《病房监护系统》课件
- 《研究性学习的评价》课件
- 《汽车行业发展》课件
- 营养科护士年终总结
- 建材行业人事工作总结
- 保险公司廉政风险防控制度
- DB34T4868-2024智慧医院医用耗材院内物流规范
- 2025年蛇年年会汇报年终总结大会模板
- 《稻草人》阅读题及答案
- 国家职业技术技能标准 X2-10-07-17 陶瓷产品设计师(试行)劳社厅发200633号
- 瑜伽基础知识题库单选题100道及答案解析
- 广东省广州市2024年中考数学真题试卷(含答案)
- 电磁场与电磁波(第五版)完整全套教学课件
- 风能发电对养殖场废弃物处理的影响
- 2024年海南省中考数学试题卷(含答案解析)
- 10MWP太阳能光伏并网发电电站项目电站的技术设计方案
评论
0/150
提交评论