码迷,mamicode.com
首页 > 其他好文 > 详细

结对项目

时间:2015-05-15 21:08:19      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

一、题目简介

本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:

 (1)菜单中有“文件”,“编辑”,“关于”三个主菜单。

(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新建文件,打开文件,保存文件,退出记事本。

(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行设置。

(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。

二、结对分工及过程

互相讨论该程序的结构,胡如姣进行代码的编写,代码完成后,由我进行代码的测试,并且将其改正,运行成功后进行截图保存。

整个记事本分为2块:菜单栏和内容输入区。本程序中首先定义一个mynotepad类继承JFrame作为最底层容器。

(1).Textcontent为程序文本输入区。

(2).Menu为菜单栏。

(3).AboutDialog为关于对话框。

(4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

主函数Notepad类

(1)简要描述:

该类是整个程序的主框架,是javax.swing包中Jframe的一个子类。并实现了AddWindowListener、ActionListener接口。

(2)类详细设计:

该类的成员变量、构造方法及方法设计如下:

1)成员变量

l  color变量的值确定文本颜色。

2)构造方法

l  Notepad()是构造方法,负责完成初始化。

3)方法

l  main()方法运行Notepad类。

(3)类详细代码

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;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);

}

}

MyNotepad类

(1) 简要描述:

实现了记事本菜单的编辑操作

(2)类详细设计:

该类的成员变量、构造方法及方法设计如下:

1)成员变量

l  color变量的值确定文本颜色。

3)构造方法

MyNotepad()是构造方法,负责完成初始化。

3)方法

l  intTextcontent()方法是Notepad类格式化文本内容的方法。

l  initMenu()方法是Notepad类定义菜单的方法。

l  saveFile()方法是Notepad类定义保存文件的方法。

l  unfold()方法是Notepad类定义读出文件的方法。

l  initAboutDialog()方法是Notepad类定义关于对话框的方法。

程序分模块详细设计与分析

(1)初始化组件

initTextContent();

initMenu();

initAboutDialog();

(2)构建菜单栏及其下拉菜单

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("关于")

}

};

(3)“文件”菜单的事件监听

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);

(4)“编辑”菜单的事件监听

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);

(5)异常处理

在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。

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();}

}

三、代码地址

https://github.com/WangLuyue/test/blob/master/Pair%20Project

四、测试情况

技术分享

技术分享

技术分享

技术分享

五、问题及心得

     程序设计本身就是动手动脑的实践,通过实践过程把学习的知识和实际联系在一起,锻炼自己的动手和思考能力,在编程的过程中,有些地方还是不懂,但是经过查书什么的还是解决了。在行运行的时候,还是出错,但是都及时的查找改正了。总的来说这次编程还是比较满意的,虽然过程中遇到了很多问题,代码不懂还有方法不明白等问题,凡事都是要查书,最后自己能掌握的程度还是可以的,随着科技的发展,我们应该不断的进步,不断学习,不能再纸上谈兵了,把学的理论知识运用到社会实践中才可以。

 

结对项目

标签:

原文地址:http://www.cnblogs.com/nuanai/p/4506742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!