《程序设计案例分析》PPT课件.ppt

上传人:w****2 文档编号:16968370 上传时间:2020-11-05 格式:PPT 页数:18 大小:1.32MB
收藏 版权申诉 举报 下载
《程序设计案例分析》PPT课件.ppt_第1页
第1页 / 共18页
《程序设计案例分析》PPT课件.ppt_第2页
第2页 / 共18页
《程序设计案例分析》PPT课件.ppt_第3页
第3页 / 共18页
资源描述:

《《程序设计案例分析》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序设计案例分析》PPT课件.ppt(18页珍藏版)》请在装配图网上搜索。

1、Java程序设计大学教程 第七章 程序设计案例分析 Java为我们设计图形界面应用程序提供 了丰富的 GUI组件,但是 Java图形界面 应用程序的设计仍然比较复杂。本章我 们配合这章内容将介绍一个设计案例 单词赢家软件。通过剖析和研究该应 用程序的设计过程,我们不仅可以对窗 体、菜单、组件、事件、布局等的设计 有一个感性的综合的了解,还可以掌握 使用开发工具( NetBeans IDE)完成 开发项目的一般过程和方法,积累实际 编程经验。 Java程序设计大学教程 7.1 可视化程序设计与 NetBeans IDE 可视化程序设计是基于图形用户界面( GUI)和可视化组 件的一种快速应用开发

2、( RAD)方法;可视化程序设计可 以根据用户需求快速建立原型,验证并实现用户需求;并 通过所见即所得的开发提高编程工作的效率。 Java有一些优秀的可视化编程工具提供了功能有限的可视 化程序设计开发环境,但目前 Java程序设计无法完全依赖 于可视化编程工具的支持,仍然有很多工作需要手工编程 来完成。 NetBeans IDE提供了一些工具,可帮助我们以可视化方 式设计和生成 Java窗体,简化图形用户界面的设计过程, 这些工具包括窗体编辑器、检查器窗口、组件面板窗口、 属性窗口、连接向导。 Java程序设计大学教程 7.1 可视化程序设计与 NetBeans IDE 窗体编辑器 检查器窗口

3、 组件面板窗口 属性窗口 项目窗口 使用 NetBeans IDE在窗体编辑器 “ 设计 ” 视图中处 理某个窗体时,将 自动生成代码,并 在 “ 源 ” 视图中以 蓝色背景显示这些 代码。此代码称为 “ 受保护文本 ” , 不能直接对其进行 编辑。 Java程序设计大学教程 7.2 设计窗体 Java应用程序的窗体包括:用作顶层窗体的框架窗 体( JFrame);用于放置内容的面板窗体 ( JPanel);用于用户交互的对话框窗体 ( JDialog)等。设计窗体除了要设计窗体中的 GUI组件和布局外,还要设计相关的事件处理程序。 在 NetBeans IDE中,可以利用新建文件向导创建 具

4、有选定类型的空白窗体,并获得系统生成的基本 代码。 Java程序设计大学教程 7.2.1 创建主窗体和主面板 在 NetBeans IDE中创建新窗体的步骤如下: 从主菜单中选择菜单项: “ 文件 -新建文件 ” 。 在 “ 新建文件 ” 向导中展开 “ Java GUI窗体 ” 节点,然后选择一个窗体模板 “JFrame窗 体 ” ,然后单击下一步。 在 “ 新建 JFrame窗体 ” 向导中输入新建窗体 的名称和位置。然后单击完成。 NetBeans IDE将创建具有选定类型的空白窗 体,并在 “ 编辑器 ” 标签的 “ 设计 ” 视图中打 开该窗体。 Java程序设计大学教程 7.2.2

5、 组件与布局设计 在 NetBeans IDE可视化设计时,使用 “ 组件面板 ” 窗 口、窗体编辑器或 “ 检查器 ” 窗口来添加组件并更改大 多数容器的布局。 可以先利用 AbsoluteLayout布局设计好程序界面,然后 再将容器的绝对布局转化成合适的相对布局。如果容器 中的 GUI元素比较复杂,则可以转化为功能强大的 GridBagLayout布局。 Java程序设计大学教程 7.2.3 添加事件 在 NetBeans IDE可视化设计时,可以使用组件的 “ 属性 ” 窗口或上 下文菜单添加事件,定义事件处理程序。系统将自动生成事件监听器 的代码和处理程序方法的空主体。 我们可以使用

6、组件的 “ 属性 ” 窗口或上下文菜单定义事件处理程序。 使用 “ 属性 ” 窗口定义事件处理程序的步骤如下(以 startButton的 Action事件为例): 在 “ 检查器 ” 窗口中选择组件 startButton,然后在 “ 属性 ” 窗口中 单击 “ 事件 ” 。 在列表中单击所需事件的值 actionPerformed。初始时,所有事件的 值均为 。当单击值字段时, 将替换为缺省事件名。 在属性表单中,键入所需的处理程序名称并按 Enter键,或者直接按 Enter键以使用缺省处理程序名称。如果未按 Enter键,将不生成任 何代码。也可以单击事件的省略号( .) 按钮以显示

7、“ 处理程序 ” 对话框。单击 “ 添加 ” 按钮,将新的名称 testWord添加到处理程序 列表中,然后单击 “ 确定 ” 。 此时系统自动生成事件监听器的代码和处理程序方法的空主体 。 选择要添加的 事件处理程序 /自动生成事件监听器的代码(不可编辑) startButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) testWord(evt); /处理程序方法的空主体(方法头不可编辑,但是方法体可编辑)

8、 private void testWord(java.awt.event.ActionEvent evt) / TODO 将在此处添加您的处理代码: Java程序设计大学教程 7.3 设计菜单和对话框 设计菜单和对话框是图形界面应用程序的最常 见特征,菜单可以用于调用不同的程序操作模 块,而通过对话框则可完成特定的设置或操作 任务。 Java程序设计大学教程 7.3.1 设计菜单 手工创建菜单时,需要先创建菜单项对象( JMenuItem的实 例)、菜单对象( JMenu的实例)、菜单栏对象( JMenuBar 的实例)。然后把菜单项对象添加到菜单对象中;把菜单对象 添加到菜单栏对象中。最后

9、使用 setJMenuBar方法,为那个能 使用菜单的容器组件添加完整的主菜单栏。使用 NetBeans IDE在窗体编辑器中可视化设计菜单。 使用 NetBeans IDE在窗体编辑器中可视化设计菜单,使得编 写菜单程序颇为简单。具体步骤如下: 首先在窗体编辑器中创建菜单栏 然后将菜单添加到菜单栏中 接着是添加菜单项 最后为菜单项添加事件 private void initComponents() . . menuItemExit.addActionListener(new java.awt.event.ActionListener() public void actionPerformed

10、(java.awt.event.ActionEvent evt) menuItemExitActionPerformed(evt); . . ); private void menuItemExitActionPerformed(java.awt.event.ActionEvent evt) exit();/用户添加的代码 Java程序设计大学教程 7.3.2 设计对话框 对话框根据其显示模式分为模态对话框和非模态对话框。模态对话框在用 户处理它之前不允许用户同应用程序的主窗口进行交互。非模态对话框允 许用户同时在该对话框和程序其他窗体中切换操作,而不用关闭该对话框。 Java类库中现成的专用

11、对话框包括:用于显示消息的选项对话框 ( JOptionPane),以及一些标准对话框,如:文件选择对话框 ( JFileChooser)、颜色选择对话框( JColorChooser)。 选项对话框 JOptionPane是典型的模态对话框。 JOptionPane有四个静态 方法来显示不同类型的消息,它们是: showMessageDialog、 showConfirmDialog、 showOptionDialog、 showInputDialog。 private void exit() int selection=JOptionPane.showConfirmDialog(this,

12、是否立即退出 系统? ,操作提示 , JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESS AGE); if (selection=JOptionPane.OK_OPTION) System.exit(0); Java程序设计大学教程 利用文件选择对话框 JFileChooser打开 文件 文件选择对话框( JFileChooser),可以允许用户通过一个图形化文件系 统浏览程序访问文件系统,打开(调用 showOpenDialog方法)或保存 (调用 showSaveDialog方法)一个文件。 public void open() in

13、t choice; JFileChooser jfc = new JFileChooser(); jfc.setSize( 400,300 ); choice = jfc.showOpenDialog( this ); if ( choice = JFileChooser.APPROVE_OPTION ) String fileName = jfc.getSelectedFile().getAbsolutePath(); loadWords(fileName); Java程序设计大学教程 自定义对话框是继承自 JDialog基类,并由程 序员自己设计的对话框。 setupDialog=new

14、SetUpDialog (null); setupDialog.setVisible(true); Java程序设计大学教程 7.4 设计算法 在单词赢家软件中,要求程序能够从词库文件中解析出单 词的中英文对照字符串,并将 50个词汇一组生成一个供测 试的单词组。用户一次进行一组词汇的英译中或中译英的 选择题测试。其核心的算法涉及: 如何从词库文件中解析出单词的中英文对照字符串,并 生成测试单词组。其中包括了顺序生成和随机生成 50 个测试词汇。 如何产生测试选择题的 4个选项,其中要求正确答案的 ABCD位置随机变化以及随机生成另外 3个用于干扰的 假答案。 如何在图形界面上实现用户交互,完

15、成答题过程。 从词库文件中读 出所有单词 单词 分组 打开文件 open() 将单词解析成 中英文字符串 列表 英文单词表 wordsEnglish 中文注释表 wordsChinese 操作设置 setup() 词汇测试 test() 随机分组 顺序分组 构造测试词 汇迭代器 试题迭代器 it1 答案迭代器 it2 生成选 择题 生成答案随机位置 生成随机伪装答案 遍历测试迭 代器 评判显示 分数统计 loadWords() makeTestList() makeKeys() Java程序设计大学教程 打开字库文件 public void open() int choice; JFileCh

16、ooser jfc = new JFileChooser(); jfc.setSize( 400,300 ); choice = jfc.showOpenDialog( this ); if ( choice = JFileChooser.APPROVE_OPTION ) String fileName = jfc.getSelectedFile().getAbsolutePath(); loadWords(fileName); Java程序设计大学教程 读入并将词库文件转换为中英文单词列表 public void loadWords(String wordfileName) try Read

17、er dataReader=new FileReader(wordfileName); BufferedReader inStream= new BufferedReader(dataReader); / 打开文件流 String line = inStream.readLine(); / 读文件中的一行 while (line != null) /将英中词汇对解析成英文、中文单词 /例如: love=vt.爱 解析成 : love和 爱 int posColon=line.indexOf(=); if (posColon0) String e=line.substring(0,posColo

18、n).trim(); String c=line.substring(posColon+1).trim(); wordsEnglish.add(e) ; wordsChinese.add(c) ; line = inStream.readLine(); / 读下一行 inStream.close(); / 关闭文件流 catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); total=wordsEnglish.size(); groupCount=total/

19、50;/50个单词分为一组 Java程序设计大学教程 /生成试题迭代器 it1和答案迭代器 it2 private void makeTestList() java.util.List chosenList1=wordsEnglish; java.util.List chosenList2=wordsChinese; testList.clear(); keyList.clear(); if (option=1) chosenList1=wordsChinese; chosenList2=wordsEnglish; if (mode=0) /产生随机测试单词 for (int i=0;i50;

20、i+) int r=(int)(Math.random()*total); testList.add(chosenList1.get(r); keyList.add(chosenList2.get(r); else /产生顺序测试单词 for (int i=0;i(total-1) ) return; testList.add(chosenList1.get(s); keyList.add(chosenList2.get(s); ; it1=testList.listIterator(); it2=keyList.listIterator(); score=0;/计分归 0 Java程序设计大

21、学教程 /产生答案选项 private void makeKeys() String keyToWord=(String)(it2.next(); /随机产生假答案 for (int i=0;i4;i+) int r=(int)(Math.random()*total); if (option=0) keyi=(String)(wordsChinese.get(r); else keyi=(String)(wordsEnglish.get(r); /如果随机产生的假答案刚好与真答案相同,则重来。 if (keyi=keyToWord) i-; /随机产生真答案的位置 keyPosition=(

22、int)(Math.random()*4); keykeyPosition=keyToWord; /显示答案选择项 keyA.setText(A. +key0); keyB.setText(B. +key1); keyC.setText(C. +key2); keyD.setText(D. +key3); ; Java程序设计大学教程 7.5 完成和部署应用程序 完成 WordWinner应用程序 。 MainForm.java文件, MainForm类 MainPanel.java文件, MainPanel类 SetUpDialog.java文件, SetUpDialog类 打包 Java应用程序 在 NetBeans IDE中生成 JAR 文件 部署和运行 Java应用程序 java -jar WordWinner.jar

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!