Java课程设计报告
题 目:简单记事本程序的设计
年级专业:计算机科学与技术 软件工程
学 号:
学生姓名:
指导老师:
目 录
摘要… 1
前言… 2
1需求分析… 2
1.1需求分析… 2
1.2功能设计… 3
2.概要设计… 3
2.1程序设计思路… 3
2.2程序运行界面… 3
2.3模块说明图… 4
2.4程序流程图… 5
2.5程序相关说明… 6
3.程序详细设计与分析… 6
3.1.初始化组件… 6
3.2.构建菜单栏及其下拉菜单… 6
3.3.“文件”菜单的事件监听… 7
3.4.“编辑”菜单的事件监听… 8
3.5.异常处理… 9
4.测试分析… 10
5.源程序清单… 12
6.课程设计总结… 17
参考文献… 17
程序代码:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class mynotepad extends JFrame{ File file=null; Color color=Color.red; mynotepad(){ initTextContent(); initMenu(); initAboutDialog(); } void initTextContent(){ getContentPane().add(new JScrollPane(content)); } JTextPane content=new JTextPane(); JFileChooser openfile=new JFileChooser(); JColorChooser opencolor=new JColorChooser(); JDialog about=new JDialog(this); JMenuBar menu=new JMenuBar(); JMenu[] menus=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("关于") } }; 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 ); } } this.setJMenuBar(menu); } 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); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); unfold(); } }else if("保存".equals(name)){ if(file!=null) openfile.setSelectedFile(file); int returnVal=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)){ 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)){ about.setSize(300,150); about.show(); } } }; void saving(){ try{ FileWriter Writef=new FileWriter(file); Writef.write(content.getText()); Writef.close(); } catch(Exception e){e.printStackTrace();} } void unfold(){ try{ FileReader Readf=new FileReader(file); int len=(int)file.length(); char []buffer=new char[len]; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer)); }catch(Exception e){e.printStackTrace();} } void initAboutDialog(){ about.setLayout(new GridLayout(3,1)); about.getContentPane().setBackground(Color.white); about.getContentPane().add(new JLabel("我的记事本程序")); about.getContentPane().add(new JLabel("制作者:liuhui")); about.getContentPane().add(new JLabel("2010年6月")); about.setModal(true); about.setSize(100,100); about.setLocation(250,170); } ; } public class Notepad{ public static void main(String args[]){ mynotepad noted=new mynotepad(); noted.addWindowListener(new WindowAdapter(){ }); noted.setTitle("我的记事本程序"); noted.setSize(640,320); noted.show(); noted.setLocation(150,100); } }
125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/3782.html