当前位置:文档之家› 记事本课程设计

记事本课程设计

第 1页课程设计说明课程名称: Java 课程设计 设计题目: 记事本 专 业: 班级:学生姓名: 学 号:指导教师:湖南工业大学科技学院教务部 制年月日一、系统设计目的:1)设计一个简单的Windows记事本,可以实现以下功能:1:文件的新建,打开,保存;2:对文件的编辑,如全选,复制,剪切,粘贴;3、工具,进行大小写的转换4:执行完操作后,能够顺利关闭记事本;2)通过这次设计,可以帮助学生:1:提高对Java语言设计的掌握能力;2:理论联系实际,进一步提高学生的软件开发技术;3:培养学生分析、解决问题的能力。

二、系统实现思路:设计两个类,一个mynotepad类,具有程序的要求和功能再创建一个Notepad主类,在主类中创建一个mynotepad类的对象,就可以直接在编译器中运行程序。

1:界面设计在主界面中设计一个iFrame容器,并在其中加入一个下拉菜单和一个文本域控件。

2:功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。

点击不同菜单项时,进行不同的操作。

3:代码设计编写每个控件的相关代码,并进行调试。

三、系统详细设计1:界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。

第 3 页主要代码:JMenu[] menus=new JMenu[]{new JMenu("文件"),new JMenu("编辑"),new JMenu("工具"),new JMenu("关于")};JMenuItem optionofmenu[][]=new JMenuItem[][]{{ new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")},{new JMenuItem("复制"),new JMenuItem("剪切"),new JMenuItem("粘贴"),new JMenuItem("文字颜色"),new JMenuItem("背景颜色")},{new JMenuItem("大写转小写"),new JMenuItem("小写转大写"),},{new JMenuItem("关于")}};void initMenu(){for(int i=0;i<menus.length;i++){menu.add(menus[i]);for(int j=0;j<optionofmenu[i].length;j++){menus[i].add(optionofmenu[i][j]);optionofmenu[i][j].addActionListener( action );}}第 5 页this.setJMenuBar(menu);}2:功能设计部分菜单项的相关代码:新建文件ActionListener action=new ActionListener(){ //事件public void actionPerformed(ActionEvent e){String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if("新建".equals(name)){content.setText("");file=null;}else if("打开".equals(name)){if(file !=null)openfile.setSelectedFile(file);intreturnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();unfold();}}else if("保存".equals(name)){if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}else if("退出".equals(name)){mynotepad f=new mynotepad();int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);if(s==JOptionPane.YES_OPTION)System.exit(0);}else if("剪切".equals(name)){content.cut();}else if("复制".equals(name)){第7 页content.copy();}else if("粘贴".equals(name)){content.paste();}else if("文字颜色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);}else if("背景颜色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setBackground(color);}else if("大写转小写".equals(name)){String str=content.getText();String str1=str.toLowerCase();content.setText(str1);}else if("小写转大写".equals(name)){String str=content.getText();String str1=str.toUpperCase();content.setText(str1);}else if("关于".equals(name)){JOptionPane.showMessageDialog(null,"程序制作:郑泽波&鲁裕浩&欧阳国胜&曾成成","关于",RMATION_MESSAGE);}第9 页四、系统调试运行1:界面调试确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。

在完成加入菜单控件后,不能缺少this.setJMenuBar(menu); 语句,将menu设为主窗体的菜单条,否则会看不到菜单栏。

如图:2:功能调试打开功能:第11 页保存功能:五、课程设计心得经过一个星期的我的记事本的课程设计,我在向华萍老师的指导下,顺利完成该课程设计。

通过该课程设计,收获颇多。

首先,让我加深了对Java语言的理论知识的理解;其次,让我更加熟练的掌握了Java语言的设计能力并且有了实践经验;再次,在设计过程中,学到了老师没有在课堂上没有教授的知识;最后,加强了我对Java语言的学习兴趣和好感。

六、参考文献:[1] 耿详义,张跃平. Java 2 实用教程. 北京:清华大学出版社,2004.2[2] 张利国.Java实用教程案例.北京:清华大学出版社,2003.10[3] 周晓聪,等.面向对象程序设计与Java语言.北京:机械工业出版社,2004.3[4] 李尊朝.Java语言程序设计.北京:中国铁道出版社,2004.2[5] (美)Philip plate Java 2 Certification Study GuideFourth Edition(Java 2 证学习指南) (第四版英文版). 北京:电子工业出版社,2004.1七、附录程序源代码:import java.awt.event.*;import java.awt.*;import java.io.*;import ng.String;class jsb implements ActionListener{Dialog bb;String strt;int i;FileDialog fd;File file;public Frame f;public TextArea p1;public MenuBar menubar;public Menu menu1,menu2,menu3;public MenuItem第13 页item1,item2,item3,item4,item5,item6,item7,item8,item9,item10; jsb(String s){ i=0;f=new Frame(s);p1=new TextArea("");f.setSize(500,500);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar();menu1=new Menu("文件");menu2=new Menu("编辑");menu3=new Menu("帮助");item1=new MenuItem("新建");item2=new MenuItem("打开");item3=new MenuItem("保存");item4=new MenuItem("另存为");item5=new MenuItem("退出");item6=new MenuItem("全选");item7=new MenuItem("复制");item8=new MenuItem("剪切");item9=new MenuItem("粘贴");item10=new MenuItem("关于");f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){f.setVisible(false);System.exit(0);}});menu1.add(item1);menu1.add(item2);menu1.add(item3);menu1.add(item4);menu1.add(item5);menu2.add(item6);menu2.add(item7);menu2.add(item8);menu2.add(item9);menu3.add(item10);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);f.setMenuBar(menubar);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);item8.addActionListener(this);item9.addActionListener(this);item10.addActionListener(this);f.setLayout(new GridLayout(1,1));f.add(p1);f.pack();}public void actionPerformed(ActionEvent e) {String ss;ss=p1.getText().trim();第15 页if (e.getSource()==item5){if (i==0 &&(ss.length()!=0)){bc();}else{System.exit(0);}}if (e.getSource()==item1){if (i==0&&(ss.length()!=0)){bc();}else{p1.setText("");i=0;f.setTitle("文件对话框"); }}if (e.getSource()==item2){fd=new FileDialog(f,"打开文件",0);fd.setVisible(true);try{file=new File(fd.getDirectory(),fd.getFile());f.setTitle(fd.getFile()+"文件对话框");FileReader fr=new FileReader(file); BufferedReader br=new BufferedReader(fr); String line = null;String view = "";while((line=br.readLine())!=null){view += line+"\n";}p1.setText(view);br.close();fr.close();}catch(IOException expIn){}}if (e.getSource()==item3){if (i==0){bc();}else{try{file=new File(fd.getDirectory(),fd.getFile());f.setTitle(fd.getFile()+"--记事本");FileWriter fw=new FileWriter(file); BufferedWriter bw=new BufferedWriter(fw);第17 页String s =p1.getText();s = s.replaceAll("\n","\r\n");bw.write(s);bw.flush();bw.close();fw.close();i=1;}catch(IOException expOut){i=0;}}}if (e.getSource()==item4){bc();}if (e.getSource()==item10){bb=new Dialog(f,"关于");Label l1=new Label("本记事本的完成感谢老师和同学的帮助!!"); bb.add(l1);bb.setSize(250,150);bb.setBackground(Color.white);bb.show();bb.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){bb.setVisible(false);bb.dispose();}});}if (e.getSource()==item6){p1.setSelectionStart(0);p1.setSelectionEnd(p1.getText().length());}if (e.getSource()==item7){try{String str=p1.getSelectedText();if(str.length()!=0){strt=str;}}catch(Exception ex){}}if (e.getSource()==item8){try{String str=p1.getSelectedText();if(str.length()!=0){p1.replaceRange("",p1.getSelectionStart(),p1.getSelectionEnd()); }第19 页catch(Exception ex){}}if (e.getSource()==item9){if(strt.length()>0){p1.insert(strt,p1.getCaretPosition());}}}public void bc(){fd=new FileDialog(f,"保存文件",1);fd.setVisible(true);try{file=new File(fd.getDirectory(),fd.getFile());f.setTitle(fd.getFile()+"--记事本");FileWriter fw=new FileWriter(file); BufferedWriter bw=new BufferedWriter(fw); String s =p1.getText();s = s.replaceAll("\n","\r\n");bw.write(s);bw.flush();bw.close();fw.close();i=1;}catch(IOException expOut){}}}public class keshe{ public static void main(String args[]) {jsb dd=new jsb("我的记事本");}}第21 页。

相关主题