程序设计案例分析 (2).ppt

上传人:wuy****n92 文档编号:88388573 上传时间:2023-04-25 格式:PPT 页数:18 大小:1.06MB
返回 下载 相关 举报
程序设计案例分析 (2).ppt_第1页
第1页 / 共18页
程序设计案例分析 (2).ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《程序设计案例分析 (2).ppt》由会员分享,可在线阅读,更多相关《程序设计案例分析 (2).ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

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

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

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

7、方法的空主体。选择要添加的事件处理程序/自动生成事件监听器的代码(不可编辑)startButton.addActionListener(new()public void evt)testWord(evt);/处理程序方法的空主体(方法头不可编辑,但是方法体可编辑)private void evt)/TODO 将在此处添加您的处理代码:JavaJava程序设计大学教程程序设计大学教程 7.3 设计菜单和对话框 n设计菜单和对话框是图形界面应用程序的最常见特征,菜单可以用于调用不同的程序操作模块,而通过对话框则可完成特定的设置或操作任务。JavaJava程序设计大学教程程序设计大学教程 7.3.1

8、 设计菜单 n手工创建菜单时,需要先创建菜单项对象(JMenuItem的实例)、菜单对象(JMenu的实例)、菜单栏对象(JMenuBar的实例)。然后把菜单项对象添加到菜单对象中;把菜单对象添加到菜单栏对象中。最后使用setJMenuBar方法,为那个能使用菜单的容器组件添加完整的主菜单栏。使用NetBeans IDE在窗体编辑器中可视化设计菜单。n使用NetBeans IDE在窗体编辑器中可视化设计菜单,使得编写菜单程序颇为简单。具体步骤如下:o首先在窗体编辑器中创建菜单栏 o然后将菜单添加到菜单栏中 o接着是添加菜单项 o最后为菜单项添加事件 private void initCompo

9、nents().menuItemExit.addActionListener(new()public void evt)menuItemExitActionPerformed(evt);.);private void evt)exit();/用户添加的代码JavaJava程序设计大学教程程序设计大学教程 7.3.2 设计对话框 n对话框根据其显示模式分为模态对话框和非模态对话框。模态对话框在用户处理它之前不允许用户同应用程序的主窗口进行交互。非模态对话框允许用户同时在该对话框和程序其他窗体中切换操作,而不用关闭该对话框。nJava类库中现成的专用对话框包括:用于显示消息的选项对话框(JOpti

10、onPane),以及一些标准对话框,如:文件选择对话框(JFileChooser)、颜色选择对话框(JColorChooser)。n选项对话框JOptionPane是典型的模态对话框。JOptionPane有四个静态方法来显示不同类型的消息,它们是:showMessageDialog、showConfirmDialog、showOptionDialog、showInputDialog。private void exit()int selection=JOptionPane.showConfirmDialog(this,是否立即退出是否立即退出系统?系统?,操作提示操作提示,JOptionPan

11、e.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);if(selection=JOptionPane.OK_OPTION)System.exit(0);JavaJava程序设计大学教程程序设计大学教程 利用文件选择对话框JFileChooser打开文件 文件选择对话框(JFileChooser),可以允许用户通过一个图形化文件系统浏览程序访问文件系统,打开(调用showOpenDialog方法)或保存(调用showSaveDialog方法)一个文件。public void open()int choice;JFileChooser jfc=new J

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

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

14、列表英文单词表wordsEnglish中文注释表wordsChinese操作设置setup()词汇测试test()随机分组顺序分组构造测试词汇迭代器试题迭代器it1答案迭代器it2生 成 选择题生成答案随机位置生成随机伪装答案遍历测试迭代器评判显示分数统计loadWords()makeTestList()makeKeys()JavaJava程序设计大学教程程序设计大学教程 打开字库文件opublic void open()o int choice;o JFileChooser jfc=new JFileChooser();o jfc.setSize(400,300);o choice=jfc.

15、showOpenDialog(this);o if(choice=JFileChooser.APPROVE_OPTION)o String fileName=jfc.getSelectedFile().getAbsolutePath();o loadWords(fileName);o o JavaJava程序设计大学教程程序设计大学教程 读入并将词库文件转换为中英文单词列表opublic void loadWords(String wordfileName)o try o Reader dataReader=new FileReader(wordfileName);o BufferedRead

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

17、nglish.add(e);o wordsChinese.add(c);o o line=inStream.readLine();/读下一行o o inStream.close();/关闭文件流o catch(FileNotFoundException e)o e.printStackTrace();o catch(IOException e)o e.printStackTrace();o o total=wordsEnglish.size();o groupCount=total/50;/50个单词分为一组o JavaJava程序设计大学教程程序设计大学教程 o/生成试题迭代器生成试题迭代器

18、it1和答案迭代器和答案迭代器it2o private void makeTestList()o chosenList1=wordsEnglish;o chosenList2=wordsChinese;o testList.clear();o keyList.clear();o if(option=1)o chosenList1=wordsChinese;o chosenList2=wordsEnglish;o o if(mode=0)o /产生随机测试单词o for(int i=0;i50;i+)o int r=(int)(Math.random()*total);o testList.ad

19、d(chosenList1.get(r);o keyList.add(chosenList2.get(r);o o elseo /产生顺序测试单词o for(int i=0;i(total-1)return;o testList.add(chosenList1.get(s);o keyList.add(chosenList2.get(s);o o ;o it1=testList.listIterator();o it2=keyList.listIterator();o score=0;/计分归0o JavaJava程序设计大学教程程序设计大学教程 o/产生答案选项产生答案选项 oprivate

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

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁