大作业报告期末考核副本.docx
- 文档编号:11098417
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:23
- 大小:142.29KB
大作业报告期末考核副本.docx
《大作业报告期末考核副本.docx》由会员分享,可在线阅读,更多相关《大作业报告期末考核副本.docx(23页珍藏版)》请在冰豆网上搜索。
大作业报告期末考核副本
附件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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大作业报告期末考核 副本 作业 报告 期末 考核