文本编辑器课程设计.docx

上传人:b****1 文档编号:139783 上传时间:2023-04-28 格式:DOCX 页数:23 大小:416.05KB
下载 相关 举报
文本编辑器课程设计.docx_第1页
第1页 / 共23页
文本编辑器课程设计.docx_第2页
第2页 / 共23页
文本编辑器课程设计.docx_第3页
第3页 / 共23页
文本编辑器课程设计.docx_第4页
第4页 / 共23页
文本编辑器课程设计.docx_第5页
第5页 / 共23页
文本编辑器课程设计.docx_第6页
第6页 / 共23页
文本编辑器课程设计.docx_第7页
第7页 / 共23页
文本编辑器课程设计.docx_第8页
第8页 / 共23页
文本编辑器课程设计.docx_第9页
第9页 / 共23页
文本编辑器课程设计.docx_第10页
第10页 / 共23页
文本编辑器课程设计.docx_第11页
第11页 / 共23页
文本编辑器课程设计.docx_第12页
第12页 / 共23页
文本编辑器课程设计.docx_第13页
第13页 / 共23页
文本编辑器课程设计.docx_第14页
第14页 / 共23页
文本编辑器课程设计.docx_第15页
第15页 / 共23页
文本编辑器课程设计.docx_第16页
第16页 / 共23页
文本编辑器课程设计.docx_第17页
第17页 / 共23页
文本编辑器课程设计.docx_第18页
第18页 / 共23页
文本编辑器课程设计.docx_第19页
第19页 / 共23页
文本编辑器课程设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

文本编辑器课程设计.docx

《文本编辑器课程设计.docx》由会员分享,可在线阅读,更多相关《文本编辑器课程设计.docx(23页珍藏版)》请在冰点文库上搜索。

文本编辑器课程设计.docx

文本编辑器课程设计

 

1设计时间

2011年12月19日-2011年12月25日

2设计目的

文本编辑器的设计与实现

3设计任务

设计文本编辑器,实现打开、新建、保存一个文本文件;设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等功能。

4设计内容

4.1需求分析

在科学技术飞速发展的今天,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

应用JAVA技术实现学生学习实践是可行而必要的工作。

在社会生活中我们经常需要用电脑编写一些文档来保存文件,本课程设计是运用了JAVA软件开发工具开发的应用软件

4.2概要设计

4.2.1系统功能图

4.3详细设计

4.3.1系统流程图

4.4系统功能与实现

4.4.1类或包的加载

importjava.awt.*;

importjava.awt.event.*;

importjava.awt.datatransfer.*;

importjavax.swing.*;

importjava.io.*;

importjava.lang.*;

4.4.1构建菜单栏及其下拉菜单

//设置文件菜单及其菜单项

JMenufileMenu=newJMenu("文件(F)");

fileMenu.setMnemonic('F');

 

//设置新建菜单项

JMenuItemnewItem=newJMenuItem("新建(N)");

newItem.setMnemonic('N');

fileMenu.add(newItem);

newItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent)

{displayText.setText("");

}});

 

//设置打开菜单项

JMenuItemopenItem=newJMenuItem("打开(O)");

openItem.setMnemonic('O');

fileMenu.add(openItem);

openItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent)

{

fd.setTitle("打开");//设置标题

fd.show();

if(fd.getFile()!

=null){

Filefile=newFile(fd.getFile());//用从fd中取得的文件建立新文件,即打开的文件

displayText.setText("");

try{

FileReaderf=newFileReader(file);

BufferedReaderb=newBufferedReader(f);//按行读打开的文件,然后传入文本域

Strings;

try{

while((s=b.readLine())!

=null){

displayText.append(s+"\n");//将给定文本追加到文本域的当前文本(即把读的内容加入文本域)

}

f.close();

b.close();

}catch(IOExceptionex){}

}catch(FileNotFoundExceptionex){}

}

else{return;}

}

});

 

fileMenu.addSeparator();//加分隔线

//设置保存菜单项

JMenuItemsaveItem=newJMenuItem("保存(S)");

saveItem.setMnemonic('S');

fileMenu.add(saveItem);

saveItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent)

{fd.setFile("*.java");

fd.setMode(FileDialog.SAVE);

fd.setTitle("保存");

fd.show();

if(fd.getFile()!

=null){

Filefile=newFile(fd.getFile());

try{

PrintWriterpw=newPrintWriter(newFileOutputStream(file));

//1.5版本之前用这一句,之后可以用PrintWriterpw=newPrintWriter(file);

pw.print(displayText.getText());

//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件

pw.flush();//刷新该流的缓冲,然后关闭该流

pw.close();

}catch(FileNotFoundExceptionex){ex.printStackTrace();}

}

else{return;}

}});

//设置另存为菜单项

JMenuItemsaveAsItem=newJMenuItem("另存为(Z)");

saveAsItem.setMnemonic('Z');

fileMenu.add(saveAsItem);

saveAsItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent)

{fd.setFile("*.java");

fd.setMode(FileDialog.SAVE);

fd.setTitle("另存为");

fd.show();

if(fd.getFile()!

=null){

Filefile=newFile(fd.getFile());

try{

PrintWriterpw=newPrintWriter(newFileOutputStream(file));

//1.5版本之前用这一句,之后可以用PrintWriterpw=newPrintWriter(file);

pw.print(displayText.getText());

//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件

pw.flush();//刷新该流的缓冲,然后关闭该流

pw.close();

}catch(FileNotFoundExceptionex){ex.printStackTrace();}

}

else{return;}

}});

fileMenu.addSeparator();//加分隔线

//设置退出菜单项

JMenuItemexitItem=newJMenuItem("退出(X)");

exitItem.setMnemonic('x');

fileMenu.add(exitItem);

exitItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent)

{

System.exit(0);

}

}

);

bar.add(fileMenu);

/*-------------------------------------------------------------------------------------------------*/

//创建编辑菜单及其菜单项

JMenueditMenu=newJMenu("编辑(E)");

editMenu.setMnemonic('E');

//剪切菜单选项

JMenuItemcutItem=newJMenuItem("剪切(T)");

cutItem.setMnemonic('T');

editMenu.add(cutItem);

cutItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

selectText=displayText.getSelectedText();//取得选定的文本

intstart=displayText.getSelectionStart();//选定的文本的开始位置

intend=displayText.getSelectionEnd();//选定的文本的结束位置

displayText.replaceRange("",start,end);/*用指定替换文本替换指定开始位置与结束位置之间的文本。

这里指定替换文本为空,即为剪切了文本*/

}

}

);

 

//复制菜单选项

JMenuItemcopyItem=newJMenuItem("复制(C)");

copyItem.setMnemonic('C');

editMenu.add(copyItem);

copyItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

selectText=displayText.getSelectedText();//获得选中的内容,并保存在selectText里

}

}

);

//粘贴的实现

JMenuItempasteItem=newJMenuItem("粘贴(P)");

pasteItem.setMnemonic('P');

editMenu.add(pasteItem);

pasteItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

intposition=displayText.getCaretPosition();//获得鼠标当前位置

displayText.insert(selectText,position);//插入到鼠标当前位置

}

}

);

editMenu.addSeparator();//加分隔线

//替换的实现

JMenuItemswapItem=newJMenuItem("替换(R))");

swapItem.setMnemonic('R');

editMenu.add(swapItem);

swapItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

JPanelswapPanel=newJPanel();

JLabellookupLabel=newJLabel("要替换的内容");

JTextFieldinputText=newJTextField(10);

JLabelswapLabel=newJLabel("替换为:

");

JTextFieldchangetoText=newJTextField(10);

swapPanel.add(lookupLabel);

swapPanel.add(inputText);

swapPanel.add(swapLabel);

swapPanel.add(changetoText);

JOptionPane.showMessageDialog(null,swapPanel);

Stringtext=displayText.getText();//获得整个文本内容

StringchangeText=text.replaceFirst(inputText.getText(),changetoText.getText());//获得替换后的内容

displayText.setText(changeText);

}

}

);

 

//全部替换的实现

JMenuItemaswapItem=newJMenuItem("全部替换(Q))");

aswapItem.setMnemonic('Q');

editMenu.add(aswapItem);

aswapItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

JPanelswapPanel=newJPanel();

JLabellookupLabel=newJLabel("要替换的内容");

JTextFieldinputText=newJTextField(10);

JLabelswapLabel=newJLabel("替换为:

");

JTextFieldchangetoText=newJTextField(10);

swapPanel.add(lookupLabel);

swapPanel.add(inputText);

swapPanel.add(swapLabel);

swapPanel.add(changetoText);

JOptionPane.showMessageDialog(null,swapPanel);

Stringtext=displayText.getText();//获得整个文本内容

StringchangeText=text.replaceAll(inputText.getText(),changetoText.getText());//获得替换后的内容

displayText.setText(changeText);

}

}

);

editMenu.addSeparator();//加分隔线

//插入子菜单

JMenuIteminsertItem=newJMenuItem("插入文本(K)");

insertItem.setMnemonic('K');

editMenu.add(insertItem);

insertItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEventevent){

JPanelinsertPanel=newJPanel();

JLabelinsertLabel=newJLabel("要插入的内容");

JTextFieldinputText=newJTextField(10);

insertPanel.add(insertLabel);

insertPanel.add(inputText);

JOptionPane.showMessageDialog(null,insertPanel);

intfromIndex=displayText.getCaretPosition();//取得当前的光标位置

displayText.insert(inputText.getText(),fromIndex);

}

}

);

 

//删除子菜单

JMenuItemRemoveItem=newJMenuItem("删除(G)");

RemoveItem.setMnemonic('G');

editMenu.add(RemoveItem);

RemoveItem.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente)

{intstart=displayText.getSelectionStart();

intend=displayText.getSelectionEnd();

displayText.replaceRange(null,start,end);

}

});

 

editMenu.addSeparator();

 

bar.add(editMenu);//addeditMenu

/*------------------------------------------------------------------------------------------*/

//创建格式菜单及其菜单项

JMenuformatMenu=newJMenu("格式(R)");

formatMenu.setMnemonic('R');

//自动换行的功能切换

JMenuItemchangeItem=newJMenuItem("自动换行(W)");

changeItem.setMnemonic('W');

formatMenu.add(changeItem);

changeItem.addActionListener(

newActionListener(){

booleanvar=false;

publicvoidactionPerformed(ActionEventevent){

if(var)var=false;

elsevar=true;

displayText.setLineWrap(var);

}

}

);

//颜色菜单项

Stringcolors[]={"黑色","蓝色","红色","绿色"};

JMenucolorMenu=newJMenu("颜色(C)");

colorMenu.setMnemonic('C');

colorItems=newJRadioButtonMenuItem[colors.length];

colorGroup=newButtonGroup();

ItemHandleritemHandler=newItemHandler();

//创建颜色按钮监听器

for(intcount=0;count

colorItems[count]=

newJRadioButtonMenuItem(colors[count]);

colorMenu.add(colorItems[count]);

colorGroup.add(colorItems[count]);

colorItems[count].addActionListener(itemHandler);

}

//默认颜色

colorItems[0].setSelected(true);

//将颜色菜单项菜单加入菜单

formatMenu.add(colorMenu);

formatMenu.addSeparator();//加分隔线

//字体菜单项

JMenufontMenu=newJMenu("字体(n)");

fontMenu.setMnemonic('n');

fonts=newJRadioButtonMenuItem[fontNames.length];

fontGroup=newButtonGroup();

//创建字体按钮监听器

for(intcount=0;count

fonts[count]=newJRadioButtonMenuItem(fontNames[count]);

fontMenu.add(fonts[count]);

fontGroup.add(fonts[count]);

fonts[count].addActionListener(itemHandler);

}

//默认字体

fonts[0].setSelected(true);

fontMenu.addSeparator();

//设置风格菜单

 

styleItems=newJCheckBoxMenuItem[styleNames.length];

 

for(intcount=0;count

styleItems[count]=

newJCheckBoxMenuItem(styleNames[count]);

fontMenu.add(styleItems[count]);

StyleHandlerstyleHandler=newStyleHandler();

styleItems[count].addItemListen

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

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