java实验文本编辑器.docx
- 文档编号:6337383
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:52.21KB
java实验文本编辑器.docx
《java实验文本编辑器.docx》由会员分享,可在线阅读,更多相关《java实验文本编辑器.docx(18页珍藏版)》请在冰豆网上搜索。
java实验文本编辑器
考
查
报
告
课程名称:
java实验
姓名:
学号:
一.开发环境描述及其相关配置描述
J2SDK1.6或以上版本,程序编辑环境EditPlus,UltraEdit,或其他Java集成开发环境
二.程序的模块功能描述和涉及到的关键JavaAPI列表
模块:
记事本:
一)、菜单
1、文件:
新建,打开,保存,另存为,退出
2、编辑:
剪切,复制,粘贴,替换,全部替换,插入文本,删除
3、格式:
自动换行,颜色,字体
4、查找
5、帮助
二)、界面
1、编辑区
三、程序源代码(关键部分附带注释)
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.datatransfer.*;
importjavax.swing.*;
importjava.io.*;
importjava.lang.*;
publicclassNotepadextendsJFrame{
privatefinalColorcolorvalues[]=
{Color.black,Color.blue,Color.red,Color.green};//定义颜色数组
StringstyleNames[]={"Bold","Italic"};//定义风格数组
StringfontNames[]={"宋体","华文行楷","隶书"};//字体数组
String[]sizeString=newString[30];//字号数组
int[]size=newint[30];//与字号数组对应的字号整数,用于设置文字大小
privateJRadioButtonMenuItemcolorItems[],fonts[];
privateJCheckBoxMenuItemstyleItems[];
privateJTextAreadisplayText;//定义文本编辑区
privateButtonGroupfontGroup,colorGroup;//字体组,跟字色组
privateintstyle;//字体风格
privateJScrollPanescroll;//为文本编辑区提供滚动条
privateStringselectText="";//存放文本编辑区中选中的文本内容
privateintrowNumber=0;
privatefd=new(this);
//setupGUI
publicNotepad()
{
super("记事本");//标题
//创建菜单条
JMenuBarbar=newJMenuBar();
setJMenuBar(bar);
//设置文件菜单及其菜单项
JMenu=newJMenu("文件(F)");
('F');
//设置新建菜单项
JMenuItemnewItem=newJMenuItem("新建(N)");
newItem.setMnemonic('N');
(newItem);
newItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevent)
{displayText.setText("");
}});
//设置打开菜单项
JMenuItemopenItem=newJMenuItem("打开(O)");
openItem.setMnemonic('O');
(openItem);
openItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevent)
{
fd.setTitle("打开");//设置标题
fd.show();
if(fd.getFile()!
=null){
=new());//用从fd中取得的文件建立新文件,即打开的文件
displayText.setText("");
try{
f=new(file);
BufferedReaderb=newBufferedReader(f);//按行读打开的文件,然后传入文本域
Strings;
try{
while((s=b.readLine())!
=null){
displayText.append(s+"\n");//将给定文本追加到文本域的当前文本(即把读的内容加入文本域)
}
f.close();
b.close();
}catch(IOExceptionex){}
}catch(ex){}
}
else{return;}
}
});
();//加分隔线
//设置保存菜单项
JMenuItemsaveItem=newJMenuItem("保存(S)");
saveItem.setMnemonic('S');
(saveItem);
saveItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevent)
{fd.setFile("*.java");
fd.setMode();
fd.setTitle("保存");
fd.show();
if(fd.getFile()!
=null){
=new());
try{
PrintWriterpw=newPrintWriter(file);
pw.print(displayText.getText());
//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件
pw.flush();//刷新该流的缓冲,然后关闭该流
pw.close();
}catch(ex){ex.printStackTrace();}
}
else{return;}
}});
//设置另存为菜单项
JMenuItemsaveAsItem=newJMenuItem("另存为(Z)");
saveAsItem.setMnemonic('Z');
(saveAsItem);
saveAsItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevent)
{fd.setFile("*.java");
fd.setMode();
fd.setTitle("另存为");
fd.show();
if(fd.getFile()!
=null){
=new());
try{
PrintWriterpw=newPrintWriter(file);
pw.print(displayText.getText());
//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件
pw.flush();//刷新该流的缓冲,然后关闭该流
pw.close();
}catch(ex){ex.printStackTrace();}
}
else{return;}
}});
();//加分隔线
//设置退出菜单项
JMenuItemexitItem=newJMenuItem("退出(X)");
exitItem.setMnemonic('x');
(exitItem);
exitItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevent)
{
System.exit(0);
}
}
);
bar.add();
//创建编辑菜单及其菜单项
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();//加分隔线
//替换的实现
JMenuItems=newJMenuItem("替换(R))");
s('R');
editMenu.add(s);
s(
newActionListener(){
publicvoidactionPerformed(ActionEventevent){
JPanelsJPanel();
JLabellookupLabel=newJLabel("要替换的内容");
JTextFieldinputText=newJTextField(10);
JLabelsJLabel("替换为:
");
JTextFieldchangetoText=newJTextField(10);
s(lookupLabel);
s(inputText);
s(s);
s(changetoText);
JOptionPane.showMessageDialog(null,s);
Stringtext=displayText.getText();//获得整个文本内容
StringchangeText=text.replaceFirst(inputText.getText(),changetoText.getText());//获得替换后的内容
displayText.setText(changeText);
}
}
);
//全部替换的实现
JMenuItemas=newJMenuItem("全部替换(Q))");
as('Q');
editMenu.add(as);
as(
newActionListener(){
publicvoidactionPerformed(ActionEventevent){
JPanelsJPanel();
JLabellookupLabel=newJLabel("要替换的内容");
JTextFieldinputText=newJTextField(10);
JLabelsJLabel("替换为:
");
JTextFieldchangetoText=newJTextField(10);
s(lookupLabel);
s(inputText);
s(s);
s(changetoText);
JOptionPane.showMessageDialog(null,s);
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].addItemListener(styleHandler); } formatMenu.add(fontMenu); bar.add(formatMenu); //创建查找菜单 JMenusearchMenu=newJMenu("查找(S)"); searchMenu.setMnemonic('H'); bar.add(searchMenu);//添加 //创建帮助菜单 JMenuhelpMenu=newJMenu("帮助(H)"); helpMenu.setMnemonic('H'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 文本 编辑器
![提示](https://static.bdocx.com/images/bang_tan.gif)