版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA项目实训文档项目名称:在Netbeans下实现记事本程序 设计内容:仿照windows提供的记事本设计一个功能类似的程序具体设计:一、建立项目1、开始之前使用NetBeans IDE开发JAVA程序,需要安装如下软件:1 J2SE(TM) Development Kit (JDK),版本最好是 1. 5 以上1 NetBeans IDE5. 5. 1这两个软件都是免费的,可以到网上下载。下载完毕后需要先安装好JDK, 然后再安装NetBeans IDE5. 5,安装完毕后,就可以打开NetBeansIDE5. 5.1,开始我们的学习历程了。2、建立记事本项目NetBeans是以项目的方
2、式来管理程序的,通常一个程序就是一个项目。所 以我们创建JAVA程序的第一步就是建立项目。(1)选择NetBeans的文件菜单新建项目,根据向导(如图1所示) 选择“常规”,“ java应用程序”,然后转入下一步。(2)向导的第二步如图2所示,需要设置项目的一些信息。我们把项目 名称定为NoteSys,设置好项目保存位置,此时先不创建主类,所以去掉 创建主类复选框的对号,单击完成即创建好一个项目(3)项目建立之后NetBeans界面如图3:知识点整理:1从图1可以看到,使用NetBeans还可以创建web程序和企业程序,我 们这里创建的是桌面应用程序。1可以在建立项目时创建主类,也可以不创建,
3、留到项目建立好后再创建 1项目建立好之后就可以在NetBeans IDE环境中看到刚才创建的项目(图 3)。NetBeans的文件组织分为两种方式:项目组织方式和文件组织方式。 项目组织方式中整个项目(NoteSys)包括:源包、测试包、库和测试库, 源包再由若干java文件构成。文件组织方式按照实际的物理存放目录组织,即项目在硬盘上的存放路 径。整个项目(NoteSys)包括src、build等儿个文件夹。1项目建立好后,在源包上单击右键可以创建包和其他的java文件,在 创建的包上单击右键也可以创建各种java文件,见图4经过这样儿个步骤,我们就建立了一个桌面程序项目NoteSys,接下来
4、就 是在IDE中对项目进行开发,首先我们先看如何建立程序的界面。二、构建记事本GUI界面NetBeans IDE的GUI生成器经过了不断的改进,截至NetBeans 5. 0版 本时,它已变得更为强大、更具直观性了。用户无需深入了解布局管理器, 就可以生成具有专业外观的GUI。在NetBeans中以可视化的方式来生成 界面,我们只需将组件放置在所需的位置,就可以完成窗体布局的设置。 下面的步骤将带领大家制作记事本的界面,也会让大家领略到NetBeans 中构建GUI界面的方便和高效。1、建立窗体在项目视图的源代码包上单击右键创建一个包(包名为qiu.notesys), 然后在qiu. note
5、sys包上单击右键创建一个jFrame类(类名为WinNote. java),此即为记事本的窗体,我们将在该窗体上添加其他组件 构建记事本的界面。如图5根据图5, NetBeans的GUI生成器的各种窗口包括:1项目和文件区域:显示整个项目的文件,采用项目和文件两中方式组织。 可以通过该窗口管理java文件,包括对java文件的新建,删除,编译, 运行等操作1检查器:提供所有组件的表示,包括在应用程序中表示为树状分层结构 的可视和非可视组件。并允许您在可用面板中组织这些组件,而且添加组 件,设置组件的属性和事件也可以在检查器内完成。1设计区域:GUI生成器用于创建和编辑Java GUI窗体的主
6、窗口。通过 使用工具栏的“源”和“设计”切换按钮,可以查看类的源代码或其GUI 组件的图形视图。1组件面板:可用组件的可定制列表,包含JFC/Swing、AWT和JavaBean 组件的标签以及布局管理器。此外,还可以使用定制器来创建、删除和重 新排列组件面板中显示的类别。1 “属性”窗口。显示GUI生成器、“检查器”窗口、“项目”窗口或 “文件”窗口中当前选定组件的属性。1调试和输出窗口:位于窗口的最下方,显示调试程序的信息和输出信息。 注意:如果单击“源”按钮,IDE将在编辑器中显示应用程序的Java源 代码,其中包含GUI生成器自动生成的代码部分,这部分以蓝色区域表 示,称为“被保护的块
7、”。被保护的块是“源”视图中无法编辑的受保护 区域。处于“源”视图中时,只能编辑出现在编辑落白色区域中的代码。 如果需要对被保护的块中的代码进行更改,请单击“设计”按钮以便从 IDE的编辑器切换到GUI生成器,然后在生成器中对窗体进行必要的调 整。保存更改时,IDE将更新文件的源代码窗体建立好了,整个界面的基础也就有了。下面我们就可以在该窗体上添 加其他组件,来完成整个界面工作了。2、添加菜单(1)加入菜单1在组件面板中选择JMenuBar,将其拖拽入我们的JFrame主窗体。1在设计视图时,屏幕右侧的检查器会检查出所有的可视组件,我们在检 查器中找到刚才推拽的JMenuBar,点击右键,在右
8、键弹出菜单中选择【更 改变量名称】,此时弹出重命名窗体,我们在新建名称中填写jmb,然 后点击“完成”按钮,此时我们的JMenuBar就成功创建了。1对于每个菜单来说,还需要创建一个菜单对象,然后把此顶层菜单添加 到菜单栏中,接着在菜单对象中添加菜单项、分隔符以及子菜单。对于【文 件】b【新建】而言,我们应首先将【文件】这个菜单对象创建,然后将【新建】菜单项添加到【文件】菜单选项中。参考图6,具体步骤如下: i.在检查器中,右键点击jmb,在弹出菜单中,选择【添加JMenu,此 时检查器中在jmb下面添加了一个新的JMenu菜单对象。ii .右键点击JMenu菜单对象,在弹出的右键菜单中选择【
9、更改变量名 称】,将其新建名称更改为。iii .右键点击菜单对象,在弹出菜单中选择【添加】e JMenuItem (可在此菜单中添加菜单项,分隔符,子菜单等),此时在“”菜单对象中添加了一个菜单项,我们将此菜单项更名为“newMenu”。这样文件菜 单和新建菜单项就建立好了。知识点整理:1添加组件的方法(1)到组件面板单击需要的组件(2)移动鼠标到窗体,此时刚单击过的组件会跟随鼠标移动,并且靠近 窗体边缘或其他组件附近时,会出现虚线来指示放置组件的位置。(3)确定好放置位置后,再次单击鼠标即可把组件添加好1修改组件大小添加组件之后,单击组件,组件周围会出现一些白色方块,把鼠标移动到 其上,拖动
10、鼠标则可改变组件大小右击组件,在菜单中选中“自动调整大小”的垂直和水平菜单,则运行程 序时,组件会随着窗口的大小变化而变化。1对齐组件添加组件时,NetBeans提供了虚线指示,所以很容易对齐组件。此外,按 住shift键选择多个组件,使用设计区域上方的一组对齐按钮也可对齐组1菜单组件NetBeans中通过JMenuBar组件来创建菜单,添加JMenuBar后,通过右 击检查器中的JMenuBar可以添加顶层菜单,通过右击顶层菜单可以添加 菜单项和分割线等,而顶层菜单和菜单项的变量名称和显示文字等可以通 过其右键菜单来设置。(2)关于菜单的儿个操作1给菜单添加图标菜单项显示图标会使菜单看上去更
11、加美观,而且含义清晰的图标也会增加 程序的易用性,所以我们有时需要给菜单添加一些图标。方法如下: 右击源包建立一个包(名称为res),通过该包的物理路径向该包内放一 些图标,然后打开菜单项的属性窗口,通过菜单的ic。属性,指定类路径 选项,然后选择包res中的图标文件就可以把图标加入到菜单中。下面以 新建菜单为例:在检查器中,右键点击“newMenu”,在弹出菜单中,选择【属性】,此 时弹出一个可以修改属性和事件的对话框,我们选择属性选项卡,找到ic。 属性,点击ic。属性对应的按钮,如图7:此时弹出一个图片选择对话框,我们选择类路径,并在当前类路径下选择 图片文件,点击“确定”按钮,这时我们
12、菜单的图片就添加上了1给菜单设置加速键加速键的作用就是程序运行中可以通过使用ALT加字母的方式快速打开菜 单。NetBeans中,在菜单的text属性指定的名字后面加上一个括号和一个大写字母,例如新建的text为“新建(N) ”然后把属性mnemonic设置 成刚才指定的大写字母即可,此时通过ALT加该字母就可以访问该菜单了 1给菜单设置快捷键菜单的快捷键可以使用户用快捷键来执行某个菜单的操作。切换到代码编 辑器窗口,在代码编辑器中创建一个方法setMenuAccelerator ,在方法 中为需要设置快捷键的菜单加入设置语句即可,新建菜单的快捷键设置如 下 这样,当我们按下Ctrl+N时,就
13、可执行新建命令了。最后在主类(WinNote. java)的构造方法中调用该方法即可。知识点整理:1 NetBeans中,在可视化的方式中就可以顺利完成菜单的各种复杂设置,包括顶层菜单、菜单项、分割线等的添加以及其他菜单的相关设置1菜单使用的图标我们事先放到了一个包内,然后以类路径的方式加入到了菜单中,这样类路径并不依赖某个具体路径,所以使程序易于移植。(3)按照刚才的方法给记事本添加表1所示的菜单菜单项菜单变量名快捷键加速器【文件】【新建】c newMenu FcN Ctrl+N【文件】【打开】c openMenuFcO Ctrl+0【文件】【保存】c saveMenuFcS Ctrl+S【
14、文件】【退出】c exitMenuFcX【编辑】【剪切】editMenu e cutMenu EeT Ctrl+X【编辑】【拷贝】editMenu e copyMenu EcC Ctrl+C【编辑】c【粘贴】【editMemi】c pasterMenu EeP Ctrl+V【编辑】e【全选】【editMenu】c selectAHMenu EcA Ctrl+A【格式】c【颜色】【editMenu】e colorMenu EcF Alt+F【帮助】c 【关于helpMenu e aboutMenu HcA3、添加工具栏NetBeans中,工具栏由JToolBar组件和按钮(JButton)组件组
15、合起来实 现的。我们首先在组件面板中找到JToolBar组件,并将其拖入我们的主 窗体,然后根据需要在jtoolBar中放置一些按钮,设置好按钮的ic。(图 标)和tooltiptext (按钮提示)属性 设计表2所示的工具栏放置顺序变量名称功能工具提示1 newButton新建文件新建2 openButton打开本地文件打开3 saveButton保存文件到本地保存4 cutButton剪切剪切5 copyButton拷贝 复制6 plasterButton 粘贴粘贴4、加入文本框NetBeans提供几个显示编辑文本的组件,我们使用JTextArea来实现。从 面板中找到JTextArea,
16、加入到窗体上这样,我们的记事本界面就制作完毕了,在项目窗口中,找到WinNote. java,右击选择编译文件,NetBeans则对该文件进行编译,编译 成功后,在运行文件即可启动程序,运行效果如图8:三、打开及保存在上一节中我们已经完成了记事本的界面,也从中学习了一些构建GUI的 方法和技巧。从本节开始将要讨论记事本的功能开发,先看如何打开和保 存文件。当然在叙述过程中会讲解如何使用NetBeans的代码编辑器的一 些用法。1、打开文件使用记事本打开一个已有的文本文件需要涉及到如下问题:1如何控制要打开文件的类型,即只能打开文本文件1打开对话框如何实现1如何从硬盘上读入文件内容到记事本中下面
17、依次讨论这三个问题的解决方案(1)控制要打开文件的类型一一类JAVA中的类可以很好的解决这个问题,是一个没有默认实现的抽象类。一经实现便可以设置在J上,以阻止不需要的文件出现在目录清单中。所 以我们自己写一个类继承自,然后实现类的方法即可,具体如下:1右击qiu. notesys包新建一个类(名称为TextFilter),此时该类的内 容如下1在类名TextFilter后输入extends ,即继承H类。此时NetBeans代码 编辑器会自动扫描代码,发现该行代码的错误并且用红线标出,这时把鼠 标移动到该行,NetBeans会提示你错误的原因:由于我们并没有引入类就 直接使用了,所以这里提示“
18、找不到类”,单击该行任意位置会在行左边 出现一个灯泡,单击灯泡,NetBeans会给出你修改错误的方法,现在从提 示里选择“添加javax. swing.的import,NetBeans就会自动把对类的 引入加上,而不需要我们去手动添加。此外,因为类是一个抽象类,所以 必须实现其所有的抽象方法,因此现在还提示有错误,再次单击该行,从 灯泡的提示中选择“实现所有抽象方法”,NetBeans就会自动把的所有 抽象方法添加上,此时代码窗口内容如下:其中标红的都是代码编辑器自动添加的。从此处也可以看出使用NetBeans 写代码会非常的省时省力。1最后我们实现TextFilter类的抽象方法,代码如下
19、这样就实现了一个只显示“txt”或“doc”类型文件的过滤涔类 TextFilter,用他可是方便的过滤文件。知识点整理:1代码编辑器可以自动查找代码错误,并标出红线提示,此时把鼠标放到 错误行上面会出现错误原因的提示1单击错误行前的小灯泡,代码编辑器会给出修改错误方案并能自动修复 错误1书写代码时可以不用过分考虑代码的缩进格式,代码写完后使用 “Ctrl+Shift+F”组合键,代码编辑器会自动调整代码格式(2)打开已有文件一一j组件NetBeans提供了一个文件选择组件一一j,为用户选择文件提供了一种简 单的机制,使用他可以方便调用打开对话框和保存对话框。我们首先添加 一个j,其用法在下一
20、步中介绍。添加该组件的具体操作是: 在项目中选择WinNote,切换到设计视图,此时检查器中会显示WinNote 的所有组件以及组件之间的组织层次,由于打开对话框是独立的,并不依 附主窗口,所以我们把该组件添加到“其他组件”内,在“其他组件”上 右击,从组件面板上添加一一SWING一一j,即可把j添加到项目中,此后 我们就可以使用它了。(3 )读入文件java中的I/O操作JAVA中为实现文本输入输出提供一些专门的类,常用的有、和BufferedReaderBufferdWriter几个类。这里我们综合利用BufferedReader以及刚才的j组件来完成对文件的打开操作,此外,打 开操作是通
21、过打开菜单来激发的,所以我们首先实现打开菜单的事件,参 见图91切换到WinNote的设计视图1到检查潜窗口找到“打开”菜单并选中(此时右击也可添加一个事件)1右侧的属性窗口会显示该菜单的相关信息,选择事件,该窗口就列出了 该菜单支持的所有的事件1找到actionPerformed事件,单击后面的按钮,就可以打开添加事件的 对话框,添加一个事件即可添加好事件后,给事件添加如下代码:知识点整理:1 NetBeans中通过属性窗口可以方便的给组件和菜单添加事件和管理事 件,而不用考虑过多的事件内部细节1 JAVA中的输入输出(1)类是用来读取字符文件的便捷类,在给定了需要读取数据的文件名 的情况下
22、创建一个新,然后使用其read方法可以读取字符流,但其所作 的每个读取请求都会导致对基础字符或字节流进行相应的读取请求,效率 很低。(2) BufferedReader从字符输入流中读取文本,缓冲各个字符(3)根据(1) (2),我们可以用BufferedReader包装read()操作效 率很低的,采用如下方式:BufferedReader in = new BufferedReader(new ();这样,用读取指定的文件,然后用BufferedReader来缓冲,最后在用read 或readline方法读取文件。避免了每次调用read ()或readLine ()都 会从文件中读取字节,
23、并将其转换为字符后返回的低效做法此外,是写入字符文件的便捷类,用于写入字符流。BufferdWriter类提 供缓冲,因此也可以综合使用这两个类完成写入文件的操作。2、保存文件保存文件的实现和打开非常类似,也是通过TextFilter类控制保存的文 件类型,通过j来调用保存对话框,通过文件输入输出操作来写文件。具 体做法请读者自己研究。四、其他功能的实现有了打开及保存,我们的记事本已经可以操作文件,本节将带领大家完成 记事本剩余的儿个重要功能。1、剪切操作添加好剪切菜单的actionPerformed事件,在事件内写如下代码 editor, cut ();其中editor是文本框jTextAr
24、ea。这样就实现了剪切操作,其余的全选、 复制、粘贴及此类似,不再细说2、文本颜色NetBeans提供了一个jColorChooser组件,使用它可以方便的实现颜色设 置。该组件显示有模式的颜色选取器,在隐藏对话框之前一直阻塞。如果 用户按下“0K”按钮,则此方法隐藏/释放对话框并返回所选颜色。如果 用户按下“Cancel”按钮或者在没有按“0K”的情况下关闭对话框,则此 方法隐藏/释放对话框并返回nullo因此,我们添加一个jColorChooser, 利用它选取颜色即可。参见图10在检查器窗口内右击“其它组件”,添加一个jColorChooser,修改变量 名为ColorChooser,然
25、后添加颜色菜单的事件,在事件内加入如下代码:第一句代码创建了一个Color对象,该对象返回了 jColorChooser组件中 被选择的颜色(jColorChooser的构造方法中的三个参数分别是:对话框 的父Component,对话框标题和显刁:颜色选取器时的初始Color设置), 第二句代码则是设置文本颜色。3、撤销操作JAVA中提供了撤销管理器类一一UndoManager,通过该类提供的方法,我 们可以方便实现撤销及恢复操作,具体操作如下:1首先声明一个UndoManager的对象,代码如下:UndoManager undoManager = new UndoManager();1因为撤
26、销和恢复都是针对文本框进行的,所以需要对文本框jTextArea 进行监视,打开文本框的AncestorAdded事件,填入如下代码这样撤销管理器就有效的对文本进行监视,一旦需要撤销或恢复操作,直 接调用撤销管理器的方法即可1最后在撤销菜单的actionPerformed事件中写一句uundoManager. undo (); ,在恢复菜单的 actionPerformed 事件写一句u undoManager. redo(); 就可以了。4、新建及退出新建及退出都会涉及到如下两个问题:1如何判断文档是否发生变化1若文档已改变,如何调用对话框询问用户是否保存当前文档对于第一个问题,文本组件jT
27、extArea没有提供相关方法,但是我们可以 定义一个全局变量,让他存储初始的文档内容,然后新建或退出时在比较 该变量和当前文档内容,相同则不必询问是否保存,否则调用对话框询问 是否保存。对于第二个问题,使用jOptionPane组件即可实现,JOptionPane有助于 方便地弹出要求用户提供值或向其发出通知的标准对话框,对 JOptionPane组件的方法调用通常有如下几个: 方法名描述 showConfirmDialog 询问一个确认问题,如 yes/no/cancelo showInputDialog提示要求某些输入。showMessageDialog告知用户某事已发生。showOpt
28、ionDialog 上述三项的大统一(Grand Unification) o每个调用方法的参数很多,这里不再细说,请查看API手册,我们使用JOptionPane组件的第一个方法showConfirmDialog来实现新建和退出需 要的对话框。(1)新建代码(2)退出退出代码及新建类似,也是判断文档是否改变,然后通过对话框提示用户 是否保存,然后在退出。5、帮助及关于窗口的制作关于的主要目的是通过一个窗口展示有关于程序的一些信息和作者的相 关信息,这里我们建立一个jPanel窗口类,然后在窗口上添加 JTabbedPane、jPanel、jLabel等几个组件就可以实现了。具体操作如下: 1
29、右击qiu. notesys包,添加一个jPanel窗口类1找到检查器中的jPanel,右击,添加JTabbedPane组件,再右击 JTabbedPane,添加两个jPanel组件,这时JTabbedPane就有了两个选项 卡:tabi和tab2,这两个选项卡是由jPanel组件构成的。最后在分别给 两个选项卡添加几个jLabeloIjLabel组件可以显示文字和图片,所以根据情况添加相关信息就可以了, 最后通过主类WinNote的关于菜单调用该窗口即可。效果如图11:知识点整理1全选、复制、粘贴和剪切等操作使用jTextArea组件自身的方法就可以 实现1文本颜色使用jColorChooser组件实现。我们并没有讲解如何实现字体 设置功能,因为NetBeans没有提供字体对话框组件,需要我们自己设计 实现字体对话框的功能,因为有些复杂,所以没有讲,请参看我的源代码 1撤销操作有撤销管理器类UndoManager实现,可以连续多次撤销或恢复 1新建及退出用到了 JOptionPane组件,它可以方便地弹出要求用户提供 值或向其发出通知的标准对话框1帮助和关于窗口使用了 JTabbedPane组件,它允许用户通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发酵工程制药工安全生产能力竞赛考核试卷含答案
- 无机盐生产工岗前安全培训考核试卷含答案
- 生成式AI在高中生物课堂中的合作学习模式创新与实践探索教学研究课题报告
- 初中英语写作中插入语误用现象的认知诊断与干预策略课题报告教学研究课题报告
- 2025河南鹤壁能源化工职业学院下半年招聘高层次人才3人考试参考题库含答案解析(夺冠)
- 2025浙江丽水市云和县机关事业单位集中招聘编外用工12人考试历年真题汇编附答案解析
- 2025浙江宁波市余姚市市级机关后勤管理服务中心招聘编外工作人员2人考试历年真题汇编附答案解析(夺冠)
- 2025秋季贵州黔西南州妇幼保健院赴省内外高校引进高层次、急需紧缺人才7人考试模拟卷带答案解析
- 2025浙江台州市紧急救援中心招聘编制外人员1人考试历年真题汇编带答案解析
- 2025湖南长沙宁乡市资福镇卫生院公开招聘就业见习人员4人笔试备考题库附答案解析(夺冠)
- 高血压脑出血软通道治疗
- GB/T 31897.1-2025灯具性能第1部分:一般要求
- 2025广东惠州大亚湾开发区招聘西区街道社区工作者30人历年真题汇编带答案解析
- 中国精锐人群生活方式洞察报告(2025年版)
- 2025年交通安全知识竞赛试题(附答案)
- 行政管理专科毕业论文(国家开放大学)
- 鄂豫皖革命纪念馆课件
- 2025江西晶昊盐化有限公司招聘1人笔试历年难易错考点试卷带答案解析试卷3套
- 2025年法务岗位测试题及答案
- 锦泰财产保险股份有限公司招聘笔试题库2025
- 小儿佝偻病课件限时
评论
0/150
提交评论