大作业报告期末考核副本.docx

上传人:b****7 文档编号:11098417 上传时间:2023-02-25 格式:DOCX 页数:23 大小:142.29KB
下载 相关 举报
大作业报告期末考核副本.docx_第1页
第1页 / 共23页
大作业报告期末考核副本.docx_第2页
第2页 / 共23页
大作业报告期末考核副本.docx_第3页
第3页 / 共23页
大作业报告期末考核副本.docx_第4页
第4页 / 共23页
大作业报告期末考核副本.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

大作业报告期末考核副本.docx

《大作业报告期末考核副本.docx》由会员分享,可在线阅读,更多相关《大作业报告期末考核副本.docx(23页珍藏版)》请在冰豆网上搜索。

大作业报告期末考核副本.docx

大作业报告期末考核副本

附件1大作业报告封面(A4)

2010-2011学年第1学期

《JAVA面向对象语言》课程大作业报告

课题名称:

小组成员人数(单选)□1人□2人□3人□4人

小组成员名单(学号和姓名):

(1)班级_________________学号___________________姓名___________________

(2)班级_________________学号___________________姓名___________________

(3)班级_________________学号___________________姓名___________________

(4)班级_________________学号___________________姓名___________________

课题实现采用的工具(如为其他,请填写具体工具名称)

□NetBeans□Eclipse□JDK命令行□EditPlus□其他______________

课题完成时间:

___________________________________

对应提交的电子文档打包文件名称(准确填写):

__________________________________________________________

==============以下部分为教师填写区,请勿填写==============

成绩评定:

软件运行______软件基本功能_______软件提高功能______软件部分成绩________

文档结构______文档理论___________文档撰写__________文档部分成绩________

总成绩_____________

备注

 

用java设计的文本编辑器MyEditor

一、软件系统分析和设计方案

1、功能需求分析

2、基本设计思路以及类的划分

二、小组成员分工

三、具体实现和代码编写

1、类的设计

2、主要方法

3、基本效果

4、代码分析

四、未实现功能说明

五、参考资料以及文献

六、小组成员以及联系方式

 

一、软件系统分析和设计方案:

1、功能需求分析

为给使用者提供方便,文本编辑器应该至少用以下功能:

(1)所见即所得的文本输入功能

(2)基本的新建、打开、保存、另存为、退出功能

(3)方便的选中、复制、剪贴、粘贴、查找、替换等功能

(4)方便的快捷键以及右键弹出菜单功能

(5)另外,该软件支持拖拽功能,能将文件之间拖进来显示

2、基本设计思路以及类的划分:

(1)设计思路及步骤-----------界面设计

a、创建一个窗体,用于容纳需要显示的组件

b、定义六个菜单按钮File、Edit、Format、Search、Tools、Help,在定义一个JMenuItem类型的二维数组,并将其添加到相应的菜单上

c、定义一个菜单栏toolBar,在定义一个JButton类型的以为数组,并将其添加到toolBar上面

d、定义一个EditArea对象,将其放于窗体的中央

至此,效果图如下:

设计思路及步骤-----------功能设计

a、文件按钮可以被点选,当点击某个文件按钮时,会弹出当前文件按钮下的菜单项,并且每个菜单项也都添加上了事件响应

b、工具条上的每个图标按可以被点选,当单击某个图标的时候,会执行相应的操作

c、文本编辑框可以用来编辑、更改、删除等各种操作,可以改变文本的字体与颜色,可以设置背景色,并且右键单击鼠标时会弹出一个弹出菜单

d、可以直接将某个文本文件拖进文本框中显示

至此,效果图如下:

(2)类的设计--------关系图

 

类的设计--------主要方法以及属性

MainFrame

Variables:

styles:

menuBar:

JmenuBar

menus:

Jmenu[]

menuItems:

JmenuItem[]

toolBar:

JtoolBar

icons:

JButton[]

ii:

ImageIcons[]

splitPane1:

JsplitPane

splitPane2:

JsplitPane

er:

EditArea

oa:

OutputArea

directoryArea:

DirectorWindow

Methods:

return:

MainFrame():

closeWindow():

void

actionPerformed(e:

ActionEvent):

void

EditArea

Varibles:

styles:

mf:

MainFrame

popuMenu:

JpopuMenu

clipboard:

Clipboard

popuItems:

JmenuItems[]

undo:

UndoManager

currentTextInTextArea:

String

findWord:

String

findWordLength:

int

findIndes:

int

replaceLength:

int

Methods:

returns:

EditArea(mf:

MainFrame)

newFile():

void

openFile():

void

saveFile():

void

saveAs():

void

exit():

void

cut():

void

copy();void

paste():

void

undo()void

find();void

findNext():

void

replace():

void

help():

void

about():

void

Fon_Color_Frame

Varibles:

styles:

mf:

MainFrame

eaEditArea

Methods:

return:

Font_Color_frame

actionPerformed(e:

ActionEvent)void

itemStateChanged(e:

ItemEvent)void

FileTransferHandler

Varibles:

styles:

eaEditArea

Methods:

return:

FileTransterHandler()

canImpot(c:

JCoponent,tflavors:

DataFlavor[]):

boolean

importDatac:

JCoponent,t:

Transferable):

boolean

OutputArea(未全部实现)

Varibles:

styles:

Methods:

return:

DirectoryWindow(未全部实现)

Varibles:

styles:

Methods:

return:

二、小组成员分工:

组长:

三、代码分析------拖拽功能

classFileTransferHandlerextendsTransferHandler{

privateEditAreaea=null;

publicFileTransferHandler(EditAreaea){

this.ea=ea;

}

//重写importData方法

publicbooleanimportData(JComponentc,Transferablet){

try{

//返回要被传输的数据

/*

*DataFlavor.javaFileListFlavor:

要将文件列表传入

*Java(及基础平台)或从中传出,需要使用此类型/子类型的*DataFlavor和java.util.List

*的表示形式类。

要求/保证列表的每个元素都是java.io.File类型。

*/

List

>files=(List

>)t

.getTransferData(DataFlavor.javaFileListFlavor);

addFilesToFilePathList(files);

returntrue;

}catch(UnsupportedFlavorExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}

returnfalse;

}

//重写canImport方法

publicbooleancanImport(JComponentc,DataFlavor[]flavors){

for(inti=0;i

if(DataFlavor.javaFileListFlavor.equals(flavors[i])){

returntrue;

}

}

returnfalse;

}

privatevoidaddFilesToFilePathList(Listfiles){

for(Iterator

>iter=files.iterator();iter.hasNext();){

Filefile=(File)iter.next();

if(file.exists()){

ea.currentFile=file;

Stringstr=null;

try{

FileReaderfr=newFileReader(file);

BufferedReaderbfr=newBufferedReader(fr);

if(ea.getText()!

=null)

ea.setText("");

while((str=bfr.readLine())!

=null){

ea.append(str+"\n");

}

}catch(Exceptionb){

}

}

}

}

}

代码分析------更改字体对话框

publicclassFont_Color_FrameextendsJFrameimplementsActionListener,

ItemListener{

//定义三个面板对象分别放窗体的北部,中间和南部

privateJPanelpUp,pDown,pCenter;

//定义字体设置,颜色设置两个面板对象,通过卡片布局的方式放在中间面板上

privateJPanelfPanel,cPanel;

//在字体设置面板上添加字体类型选择面板、字体样式选择面板和字体大小选择面板

privateJPanelfont_font,font_style,font_size;

privateJPanelpDown_test,pDown_fontTest,pDown_button;

privateJPanelcolor_reg,color_exact,color_test1,color_test2;

//获取系统字体

privateStringfont[]=GraphicsEnvironment.getLocalGraphicsEnvironment()

.getAvailableFontFamilyNames();;

//定义用于设置字体样式数组

privateStringstyle[]=newString[]{"Plain","Italic","Bold",

"Italic&Bold"};

//定义用于设置字体大小数组

privateStringsize[]=newString[]{"8","9","10","11","12","14",

"16","18","20","22","24","26","28","36","48","72"};

//定义常用颜色数组

privateColorcolor[]=newColor[]{Color.red,Color.blue,Color.cyan,

Color.darkGray,Color.green,Color.lightGray,Color.magenta,

Color.orange,Color.pink,Color.yellow,Color.black,Color.white,

Color.gray};

//定义四个Button对象,分别为字体、颜色、确定、取消

privateJButtonjFont,jColor,jConfirm,jCancle;

//定义代表常用颜色的13个按钮数组

privateJButtonregColor[]=newJButton[13];

//定义用于手动设置精确的字体颜色的三个文本框

privateJTextFieldfont_font_jtf,font_style_jtf,font_size_jtf;

//定义显示字体格式化后的效果的标签

privateJLabelfontTestLabel;

privateJTextFieldcolorSet[]=newJTextField[]{newJTextField(3),

newJTextField(3),newJTextField(3)};

privateJButtonjbApply=null;

privateJCheckBoxjcb=null;

//定义一个CardLayout布局对象,用于字体设置面板和颜色设置面板之间的切换

//

privateMainFramemf=null;

privateEditAreaea=null;

privateCardLayoutcard=null;

//构造函数,完成一些初始化工作

publicFont_Color_Frame(EditAreaea,MainFramemf){

this.ea=ea;

this.mf=mf;

jFont=newJButton("字体");

jFont.addActionListener(this);

jColor=newJButton("颜色");

jColor.addActionListener(this);

jConfirm=newJButton("确定");

jConfirm.addActionListener(this);

jCancle=newJButton("取消");

jCancle.addActionListener(this);

pUp=newJPanel();

pUp.add(jFont);

pUp.add(jColor);

pDown_fontTest=newJPanel();

pDown_fontTest.setLayout(newBorderLayout());

fontTestLabel=newJLabel("AaBbCc123",JLabel.CENTER);

pDown_fontTest.add(fontTestLabel,BorderLayout.CENTER);

pDown_fontTest.add(newJLabel("Preview:

"),BorderLayout.NORTH);

pDown_button=newJPanel();

pDown_button.add(jConfirm);

pDown_button.add(jCancle);

pDown_test=newJPanel();

pDown_test.setLayout(newBorderLayout());

pDown_test.add(pDown_fontTest,BorderLayout.NORTH);

pDown=newJPanel();

pDown.setLayout(newBorderLayout());

pDown.add(pDown_fontTest,BorderLayout.NORTH);

pDown.add(pDown_button,BorderLayout.CENTER);

font_font=newJPanel();

font_font.setLayout(newBorderLayout());

finalJListjFont=newJList(font);

jFont.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

jFont.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

if(e.getClickCount()==1){

intindex=jFont.locationToIndex(e.getPoint());

Stringfamily=(String)jFont.getModel().getElementAt(

index);

font_font_jtf.setText(family);

fontTestLabel.setFont(newFont(family,fontTestLabel

.getFont().getStyle(),fontTestLabel.getFont()

.getSize()));

}

}

});

font_font_jtf=newJTextField(10);

font_font.add(newJLabel("Font:

"),BorderLayout.NORTH);

font_font.add(font_font_jtf,BorderLayout.SOUTH);

font_font.add(newJScrollPane(jFont),BorderLayout.CENTER);

font_style=newJPanel();

font_style.setLayout(newBorderLayout());

font_style_jtf=newJTextField(10);

finalJListjStyle=newJList(style);

jStyle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

jStyle.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

if(e.getClickCount()==1){

intindex=jStyle.locationToIndex(e.getPoint());

Stringstyle=(String)jStyle.getModel().getElementAt(

index);

font_style_jtf.setText(style);

if(font_style_jtf.getText().equals("Plain")){

fontTestLabel.setFont(newFont(fontTestLabel.getFont()

.getFamily(),Font.PLAIN,fontTestLabel

.getFont().getSize()));

}elseif(font_style_jtf.getText().equals("Italic")){

fontTestLabel.setFont(newFont(fontTestLabel.getFont()

.getFamily(),Font.ITALIC,fontTestLabel

.getFont().getSize()));

}elseif(font_style_jtf.getText().equals("Italic&Bold")){

fontTestLabel.setFont(newFont(fontTestLabel.getFont()

.getFamily(),Font.BOLD|Font.ITALIC,

fontTestLabel.getFont().getSize()));

}elseif(font_style_jtf.getText().equals("Bold")){

fontTestLabel.setFont(newFont(fontTestLabel.getFont()

.getFamily(),Font.BOLD,fontTestLabel

.getFont().getSize()));

}

}

}

});

font_style.add(newJLabel("Style:

"),BorderLayout.NORTH);

font_style.add(font_style_jtf,BorderLayout.SOUTH);

font_style.add(newJScrollPane(jStyle),BorderLayout.CENTER);

font_size=newJPanel();

font_size.setLayout(newBorderLayout());

font_size_jtf=newJTextField(10);

finalJListjSize=newJList(size);

jSize.setSelectionMode(ListSelectionModel.SINGLE_SE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1