收藏 分销(赏)

JAVA程序设计-专业课程设计.doc

上传人:天**** 文档编号:2864475 上传时间:2024-06-07 格式:DOC 页数:22 大小:177.04KB 下载积分:10 金币
下载 相关 举报
JAVA程序设计-专业课程设计.doc_第1页
第1页 / 共22页
JAVA程序设计-专业课程设计.doc_第2页
第2页 / 共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 {
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服