JAVA程序设计-专业课程设计.doc
《JAVA程序设计-专业课程设计.doc》由会员分享,可在线阅读,更多相关《JAVA程序设计-专业课程设计.doc(22页珍藏版)》请在咨信网上搜索。
辽 宁 工 业 大 学 JAVA程序设计 课程设计(论文) 题目: 记事本 院(系): 软件学院 专业班级: 软件技术083班 学 号: 学生姓名: 范 舵 指引教师: 丁宝柱 教师职称: 助 教 起止时间: .12.1至.12.16 程序设计专项(报告)任务及评语 院(系):软件学院 教研室:软件教研室 学 号 学生姓名 范舵 专业班级 软件技术083 程序设计(报告)题目 记事本 程序设计(报告)任务 程序设计专项任务与规定: (1)掌握Java编程、面向对象基本知识。 (2)较纯熟地编写Java应用程序Application。 (3)理解Java惯用原则类库、编程技巧、异常解决。 (5)联系已学过内容,巩固所学理论,增强独立工作能力。 (6)通过设计重要使学生有一种独立编写程序过程,对理论学习及动手能力均有一种很大提高。 (7)通过本次设计,进一步培养学生热爱专业思想,同步对本专业综合素质提高起一种积极推动作用。 课程设计过程中,要严格遵守实践环节时间安排,听从指引教师指引。对的地完毕上述内容,记录实习日记,规范完整地撰写出课程设计报告。 指引教师评语及成绩 成绩: 指引教师签字: 年 12 月 20 日 目 录 第1章 课程设计目与规定 1 1.1 课程设计目 1 1.2 课程设计实验环境 1 1.3 课程设计预备知识 1 1.4 课程设计规定 1 第2章 课程设计内容 2 2.1课程设计重要内容 2 2.2概要设计 2 2.2.1自定义类阐明 3 2.3详细设计 5 2.4测试分析 13 2.4.1程序运营状况 13 2.4.2程序异常解决 15 第3章 课程设计总结 16 参照资料 17 第1章 课程设计目与规定 1.1 课程设计目 《JAVA程序设计》是计算机有关专业必修专业基本课程,其实践性、应用性很强。实践教学环节是必不可少一种重要环节。本课程程序设计专项实际是计算机有关专业学生学习完《JAVA程序设计》课程后,进行一次全面综合训练,JAVA程序设计设计目是加深对理论教学内容理解和掌握,使学生较系统地掌握程序设计及其在网络开发中广泛应用,基本办法及技巧,为学生综合运用所学知识,运用软件工程为基本进行软件开发、并在实践应用方面打下一定基本。 1.2 课程设计实验环境 硬件规定能运营Windows 9.X操作系统微机系统。JAVA程序设计语言及相应集成开发环境,J2SDK和ECLIPSE开发工具。 1.3 课程设计预备知识 熟悉JAVA语言及ECLIPSE开发工具。 1.4 课程设计规定 按课程设计指引书提供课题,规定学生在自行完毕各个操作环节,并能实现且达到举一反三目,完毕一种项目解决一类问题。规定学生可以全面、进一步理解和纯熟掌握所学内容,并可以用其分析、设计和解答类似问题;对此可以较好地理解和掌握,可以进行简朴分析和判断;能编写出具备良好风格程序;掌握JAVA程序设计基本技能和面向对象概念和办法;理解多线程、安全和网络等编程技术。同步培养学生进行分析问题、解决问题能力;培养学生进行设计分析、设计办法、设计操作与测试、设计过程观测、理解和归纳能力提高。 第2章 课程设计内容 2.1课程设计重要内容 此JAVA记事本程序设计为两个类,一种jsb类,具备程序规定和功能再创立一种keshe主类,在主类中创立一种jsb类对象,就可以直接在编译器中运营程序。 界面设计 在主界面中设计一种Frame容器,并在其中加入一种下拉菜单和一种文本域控件,把该容器设立为GridLayout(1,1)布局。 功能设计 在下拉菜单中加入子菜单并进行监听,分别实现对文献操作功能。点击不同菜单项时,显示不同界面。 代码设计 编写每个控件有关代码,并进行调试。 2.2概要设计 本系统共涉及1个Java源文献。本系统采用了awt包,程序实现了文本编辑器基本功能有:打开文献,文献保存,文献另存为,退出,信息,查找,复制,剪切.粘贴,文字颜色,设立字体,设立字形,设立字号大小,由于该编辑器用是awt包,因此在技术上没有实现将文本以不同颜色显示功能.Java程序编辑器是:图形界面,线程,流与文献等技术综合应用.文本编辑区选用TextArea作为重要部件.文献操作实现:运用字符文献流readFromFile和writeToFile办法来实现.由于java特性,也许用任何一种编辑器来编辑,于是就将windows记事本作为模仿对象,依照实现状况删减了其中某些功能,如自动换行,设立字体,打印等功能.在设计类时候考虑简朴明了,就设计了一种主类和默认属性类做为程序整体框架,所有对象和办法是在默认属性类中创立和实现.以及为各组件注册事件监听监听程序也是在默认属性类中实现,主类完毕对象实例化及显示.这样设计长处是:条理清晰,容易理解,容易修改.这样设计缺陷是:不利于共享类中办法. 2.2.1自定义类阐明 类名:NoteBook作用为主类,继承父类没有,实现接口没有 int result=fileChooser.showOpenDialog(this); if(result==JFileChooser.CANCEL_OPTION){ statusLabel.setText(" 您没有选取任何文献"); return; } File fileName=fileChooser.getSelectedFile(); if(fileName==null||fileName.getName().equals("")) JOptionPane.showMessageDialog(this,"不合法文献名","不合法文献名",JOptionPane.ERROR_MESSAGE); else { try{ FileReader fr=new FileReader(fileName); BufferedReader bfr=new BufferedReader(fr); editArea.setText(""); while((str=bfr.readLine())!=null){//每次读取一行,直到文献结束 editArea.append(str+"\15\12"); }//endwhile this.setTitle(fileName.getName()+" - 记事本"); statusLabel.setText(" 当前打开文献:"+fileName.getAbsoluteFile()); fr.close(); isNewFile=false; currentFile=fileName; oldValue=editArea.getText(); } catch(IOException ioException){ } } } }//"打开"解决结束 类名:JMenuBar类 (菜单栏) JMenu 继承自JMenuItem,它们都在javax.swing包中,都实现了Accessible,MenuElement 接口 public class JMenuBarDemo { public static void main (String[] args) { //try{javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());}catch(Exception e){} JPanel panel = new JPanel (); panel.setBackground (Color.white); panel.setPreferredSize (new Dimension (600,400)); //JMenu 有箭头(除了顶层),可以添加JMenu和JMenuItem; //JMenuItem 无箭头,不可添加其她菜单项 JFrame frame = new JFrame ("JMenuBarDemo"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setContentPane (panel); frame.setJMenuBar (bar); frame.pack(); frame.show(); } } 2.3详细设计 import java.io.*; import java.util.Calendar; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class NoteBook extends JFrame implements ActionListener,ItemListener,WindowListener,MouseListener{ Container c = this.getContentPane(); JMenuBar jmb = new JMenuBar(); JColorChooser jcc = new JColorChooser(); JMenu jm1 = new JMenu("文献(F)"); JMenu jm2 = new JMenu("编辑(E)"); JMenu jm3 = new JMenu("格式(O)"); JMenu jm4 = new JMenu("查看(V)"); JMenu jm5 = new JMenu("协助(H)"); JMenuItem jmi1 = new JMenuItem("新建(N)"); JMenuItem jmi2 = new JMenuItem("打开(O)"); JMenuItem jmi3 = new JMenuItem("保存(S)"); JMenuItem jmi4 = new JMenuItem("退出(X)"); JMenuItem jmi5 = new JMenuItem("撤除(U)"); JMenuItem jmi6 = new JMenuItem("复制(C)"); JMenuItem jmi7 = new JMenuItem("粘贴(P)"); JMenuItem jmi8 = new JMenuItem("剪切(T)"); JMenuItem jmi12 = new JMenuItem("日期和时间"); JMenuItem jmi9 = new JMenuItem("字体(E)"); JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)"); JMenuItem jmi10 = new JMenuItem("删除(S)"); JMenuItem jmi11 = new JMenuItem("背景颜色(H)"); JTextArea jta = new JTextArea(15,15); JScrollPane jsp = new JScrollPane(jta); //PupolMenu pm = new Pupolmenu(); NoteBook(){ this.addWindowListener(this); c.setLayout(new BorderLayout()); c.add(jmb,BorderLayout.NORTH); this.setTitle("新建 文本文档"); jmb.add(jm1); jm1.setMnemonic('f'); jm1.addActionListener(this); jmb.add(jm2); jm2.setMnemonic('e'); jmb.add(jm3); jm3.setMnemonic('o'); jmb.add(jm4); jm4.setMnemonic('v'); jmb.add(jm5); jm5.setMnemonic('h'); jm1.add(jmi1); jmi1.addActionListener(this); jmi1.setAccelerator(KeyStroke.getKeyStroke ('N',Event.CTRL_MASK,false)); jm1.addSeparator(); jm1.add(jmi2); jmi2.setAccelerator(KeyStroke.getKeyStroke ('O',Event.CTRL_MASK,false)); jmi2.addActionListener(this); jm1.addSeparator(); jm1.add(jmi3); jmi3.setAccelerator(KeyStroke.getKeyStroke ('S',Event.CTRL_MASK,false)); jmi3.addActionListener(this); jm1.addSeparator(); jm1.add(jmi4); jmi1.setMnemonic('n'); jmi2.setMnemonic('o'); jmi3.setMnemonic('s'); jmi4.setMnemonic('x'); jmi4.addActionListener(this); jm2.add(jmi5); jm2.addSeparator(); jm2.add(jmi6); jm2.addSeparator(); jm2.add(jmi7); jm2.addSeparator(); jm2.add(jmi8); jm2.add(jmi12); jmi12.addActionListener(this); jm3.add(jcbmi); jcbmi.addItemListener(this); jm3.addSeparator(); jm3.add(jmi9); jm4.add(jmi10); jmi10.addActionListener(this); jm5.add(jmi11); jmi11.addActionListener(this); c.add(jsp); this.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE); this.setSize(500,500); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==jmi1){ jta.setText(""); this.setTitle("无标题 - 记事本"); } if(e.getSource()==jmi2){ File f1; JFileChooser jfc1 = new JFileChooser(); int num1 = jfc1.showOpenDialog(this); if(num1==JFileChooser.APPROVE_OPTION){ try{ f1 = jfc1.getSelectedFile(); this.setTitle(f1.getName()); FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr); String str; while((str = br.readLine())!=null){ jta.setText(str); } fr.close(); br.close(); }catch(FileNotFoundException e1){ e1.printStackTrace(); }catch(IOException e2){ e2.printStackTrace(); } } } if(e.getSource()==jmi3){ File f2 = null; JFileChooser jfc2 = new JFileChooser(); int num2 = jfc2.showSaveDialog(this); if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile(); this.setTitle(f2.getName()); try{ FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText()); bw.close(); fw.close(); }catch(IOException e2){ e2.printStackTrace(); } } } if(e.getSource()==jmi4){ int a = JOptionPane.showConfirmDialog (this,"文献已被变化,与否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION); if(a==1){ this.dispose(); }else if(a==0){ File f2 = null; JFileChooser jfc2 = new JFileChooser(); int num2 = jfc2.showSaveDialog(this); if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile(); this.setTitle(f2.getName()); try{ FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText()); bw.close(); fw.close(); }catch(IOException e2){ e2.printStackTrace(); } this.dispose(); } } } if(e.getSource()==jmi12){ Calendar c1 =Calendar.getInstance(); int y = c1.get(Calendar.YEAR); int m = c1.get(Calendar.MONTH); int d = c1.get(Calendar.DATE); int h = c1.get(Calendar.HOUR); int m1 = c1.get(Calendar.MINUTE); int m2 = m+1; jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1); } if(e.getSource()==jmi11){ Color ccc = JColorChooser.showDialog (this,"color",Color.BLACK); jta.setSelectedTextColor(ccc); jta.setBackground(ccc); } if(e.getSource()==jmi10){ jta.replaceRange("",jta.getSelectionStart(), jta.getSelectionEnd()); } } public void itemStateChanged(ItemEvent e2){ if(e2.getItemSelectable()==jcbmi){ jta.setLineWrap(true); }else jta.setLineWrap(false); } public static void main(String[] args){ new NoteBook(); } public void windowOpened(WindowEvent arg0) { } public void windowClosing(WindowEvent arg0) { int a = JOptionPane.showConfirmDialog、(this,"文献已被变化,与否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION); if(a==1){ this.dispose(); }else if(a==0){ File f2 = null; JFileChooser jfc2 = new JFileChooser(); int num2 = jfc2.showSaveDialog(this); if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile(); this.setTitle(f2.getName()); try{ FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText()); bw.close(); fw.close(); }catch(IOException e2){ e2.printStackTrace(); } } if(a==2){ ////????/????????????????????????????????????????????????????????????????// } } } public void windowClosed(WindowEvent arg0) { } } public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } } 2.4测试分析 2.4.1程序运营状况 高档功能规定: (1)为新建,打开,保存,撤除复制,剪切,粘贴,设立工具栏按钮 (2)编辑:查找、查找下一种、替代 (3)格式:字体设立、颜色设立、时间显示 (4)添加状态栏,在状态栏显示当前文献与否已修改 图2.1记事本界面 图2.2关于记事本 一种完整程序还必要具备打印功能。在JAVA中想打印必要调用PrinterJob类。并且进行页面设立,则调用PageFormat。在这里提示对话框顾客可以自己选取。如下图所示: 图2.3 打印窗口 实现该功能某些代码如下所示: PrinterJob printerJob = PrinterJob.getPrinterJob(); PageFormat pageFormat = printerJob.pageDialog(printerJob .defaultPage()); try { boolean boo = printerJob.printDialog(); if (boo == true) { printerJob.print(); } } catch (PrinterException ee) { System.out.println(ee); } 2.4.2程序异常解决 java异常解决合用于在一种办法中可以检测出错误单不能解决错误状况,这样办法将抛出一种异常(JAVA无法保证“存在”异常解决程序可以解决某种异常,若“存在”,就“捕获”异常,并解决“异常”,如找不到,那么: 命令行APP/控制台APP(不基于GUI),当异常不能被“捕获”,那么该程序会运营默认异常解决程序,退出JAVA,若Applet或基于GUIAPP,当一种异常未被“捕获”,GUI在运营默认异常解决程序依然会显示,并且顾客使用GUI处在一种不稳定状态) JAVA代码中:1、也许浮现异常代码-----{ …… try{抛出一种异常}-----程序块 ……catch1{异常解决程序1};……catch100 {异常解决程序100}; finally{无类与否浮现异常都执行程序} 1、若try抛出Exception,App寻找在Catch1~100寻找适当异常解决程序,若找到,执行CATCH{}代码,没有,执行最后一种catch{}后裔码 2、若try未抛出Exception,就执行执行最后一种catch{}后裔码。 3、throws子句来抛出指定异常,异常抛出点(throws 语句位置、try{}程序块、try()程序块中直接和间接调用办法中) 4、java采用终结方式异常解决,不是恢复方式异常解决 5、发生异常时,异常周边信息(抛出对象自身类型)-------------异常解决程序 import java.io.*; public class Trans { public static void main(String[] args) { try { test(); } catch (Exception ex) { ex.printStackTrace(); } } static void test() throws Error {- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序设计 专业课程 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文