大作业报告期末考核副本Word文档下载推荐.docx

上传人:b****3 文档编号:7068358 上传时间:2023-05-07 格式:DOCX 页数:23 大小:142.29KB
下载 相关 举报
大作业报告期末考核副本Word文档下载推荐.docx_第1页
第1页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第2页
第2页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第3页
第3页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第4页
第4页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第5页
第5页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第6页
第6页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第7页
第7页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第8页
第8页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第9页
第9页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第10页
第10页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第11页
第11页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第12页
第12页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第13页
第13页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第14页
第14页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第15页
第15页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第16页
第16页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第17页
第17页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第18页
第18页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第19页
第19页 / 共23页
大作业报告期末考核副本Word文档下载推荐.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大作业报告期末考核副本Word文档下载推荐.docx

《大作业报告期末考核副本Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《大作业报告期末考核副本Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。

大作业报告期末考核副本Word文档下载推荐.docx

五、参考资料以及文献

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

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

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:

er:

EditArea

oa:

OutputArea

directoryArea:

DirectorWindow

Methods:

return:

MainFrame():

closeWindow():

void

actionPerformed(e:

ActionEvent):

EditArea

Varibles:

mf:

MainFrame

popuMenu:

JpopuMenu

clipboard:

Clipboard

popuItems:

JmenuItems[]

undo:

UndoManager

currentTextInTextArea:

String

findWord:

findWordLength:

int

findIndes:

int

replaceLength:

returns:

EditArea(mf:

MainFrame)

newFile():

openFile():

saveFile():

saveAs():

exit():

cut():

copy();

paste():

undo()void

find();

findNext():

replace():

help():

about():

Fon_Color_Frame

eaEditArea

Font_Color_frame

ActionEvent)void

itemStateChanged(e:

ItemEvent)void

FileTransferHandler

FileTransterHandler()

canImpot(c:

JCoponent,tflavors:

DataFlavor[]):

boolean

importDatac:

JCoponent,t:

Transferable):

OutputArea(未全部实现)

DirectoryWindow(未全部实现)

二、小组成员分工:

组长:

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

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

}

returnfalse;

//重写canImport方法

publicbooleancanImport(JComponentc,DataFlavor[]flavors){

for(inti=0;

i<

flavors.length;

i++){

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

returntrue;

}

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&

};

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

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;

privateCardLayoutcard=null;

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

publicFont_Color_Frame(EditAreaea,MainFramemf){

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:

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(){

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

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

font_style_jtf.setText(style);

if(font_style_jtf.getText().equals("

)){

fontTestLabel.setFont(newFont(fontTestLabel.getFont()

.getFamily(),Font.PLAIN,fontTestLabel

.getFont().getSize()));

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

.getFamily(),Font.ITALIC,fontTestLabel

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

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

.getFamily(),Font.BOLD,fontTestLabel

font_style.add(newJLabel("

Style:

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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2