java做的简单记事本范文文档格式.docx
《java做的简单记事本范文文档格式.docx》由会员分享,可在线阅读,更多相关《java做的简单记事本范文文档格式.docx(24页珍藏版)》请在冰点文库上搜索。
![java做的简单记事本范文文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/05f3008d-c0df-4f5f-a89a-8085c7a619b0/05f3008d-c0df-4f5f-a89a-8085c7a619b01.gif)
InterCeleron1G;
JDK版本:
1.5;
五、进度计划及执行情况
日期
任务安排
执行情况
2008-1-7
了解计事本的基本功能,并实现基本的
框架
基本框架搭建好了
功能实现
方法
进行了整个窗口的布局
调试结果
最后程序能正常运行
错误原因
分析
遇到的问题是:
在开始时,文本域控件JText没有滚动条
改正情况
经过查API函数。
在JScrollPane中添加文本域控件。
在将JScollPane解决了问题。
2007-1-8
实现文件的打开和保存功能
对文件进行正确的读写
文件的打开和保存功能
对文件可以进行正确的读写。
刚开始进行文件读写操作时,用的是字节流,读出来的都是乱码。
数据的流使用错了。
使用了字符流解决了问题
2008-1-9
实现字体风格和小的设置
可以对字体进行正确设置
字体名是调用系统的,字号用的是8-99号字,颜色调用java的颜色面板
可以对字体的字体,字号,还有字体颜色进行相关设置,新建文件后,原来的字体颜色还保留着
在新建时没有进行颜色的设置
在新建后可以解决该问题
2008-1-10
实现查找和替换功能
可以正确进行查找和替换
应用的是String常用的几个方法
可以进行查找和替换还有点功能上的欠缺
查找到到最后一个时。
不能返回重新查找
有待改进
2008-1-11
实现字体风格的保存,保证打开后,能保持原来的风格。
功能已经实现
将字体风格保存到另一个文件中,打开文本时,也同时读取该文件,重新进行字体的设置。
遇到过的一次错误是,颜色不能正常显示,改进过,后来程序可以实现文本打开后字体维持原状。
错误的使用颜色的函数
已经没有问题,可以正常显示颜色。
六、程序清单
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.awt.GraphicsEnvironment;
importjavax.swing.*;
importjava.util.*;
importjava.awt.Graphics;
classMyTextPadextendsFrameimplementsActionListener
{
JTextAreatext;
JScrollPanejsp;
PopupMenupopm;
Datedate=newDate();
Stringstr="
"
;
Dialogd,About;
Choicec1,c2,c3;
Buttonbtn1,btn2;
StringStr1="
宋体"
Str2="
普通"
Str3="
15"
inttemp=0;
intRed=0,Green=0,Blue=0;
LabellFind=newLabel("
查找字符串:
);
LabellReplace=newLabel("
替换字符串:
TextFieldtFind=newTextField(10);
TextFieldtReplace=newTextField(10);
ButtonbFind=newButton("
查找"
ButtonbReplace=newButton("
替换"
ButtonbReplaceAll=newButton("
替换所有"
Dialogdialog;
DialogfindD;
publicMyTextPad(Stringstr)
{
super(str);
text=newJTextArea();
text.setFont(newFont("
0,15));
jsp=newJScrollPane(text);
add("
Center"
jsp);
findD=newDialog(this);
addWindowListener(newWindowAdapter()
publicvoidwindowClosing(WindowEvente)
dispose();
}
);
d=newDialog(this,"
字体选择"
d.setBounds(150,150,320,200);
findD.addWindowListener(newWindowAdapter()
findD.setVisible(false);
d.addWindowListener(newWindowAdapter()
d.setVisible(false);
c1=newChoice();
c2=newChoice();
c3=newChoice();
GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
StringfontName[]=ge.getAvailableFontFamilyNames();
for(inti=0;
i<
fontName.length;
i++)
c1.add(fontName[i]);
c2.add("
粗体"
斜体"
粗体与斜体"
for(inti=8;
100;
c3.add("
+i);
Panelp1=newPanel();
Panelp2=newPanel();
p1.add(c1);
p1.add(c2);
p1.add(c3);
btn1=newButton("
确定"
btn2=newButton("
取消"
d.setLayout(newGridLayout(5,3));
d.add(p1);
p2.add(btn1);
btn1.addActionListener(this);
btn2.addActionListener(this);
p2.add(btn2);
d.add(p2);
About=newDialog(this,"
关于"
About.addWindowListener(newWindowAdapter()
About.setVisible(false);
About.setBounds(300,300,150,150);
About.add(newLabel("
蒋俊涛的计事体1.0版本"
));
Menumn=newMenu("
文件"
MenuItemmiNewFile=newMenuItem("
新建"
newMenuShortcut(KeyEvent.VK_N));
MenuItemmiOpenFile=newMenuItem("
打开"
newMenuShortcut(KeyEvent.VK_O));
MenuItemmiSaveFile=newMenuItem("
保存"
newMenuShortcut(KeyEvent.VK_S));
MenuItemmiExit=newMenuItem("
退出"
newMenuShortcut(KeyEvent.VK_E));
mn.add(miNewFile);
mn.add(miOpenFile);
mn.add(miSaveFile);
mn.addSeparator();
mn.add(miExit);
miNewFile.addActionListener(this);
miOpenFile.addActionListener(this);
miSaveFile.addActionListener(this);
miExit.addActionListener(this);
Menumn1=newMenu("
编辑"
MenuItemmiSelectAll=newMenuItem("
全选"
newMenuShortcut(KeyEvent.VK_P));
MenuItemmiClear=newMenuItem("
清空"
MenuItemmiCopy=newMenuItem("
复制"
newMenuShortcut(KeyEvent.VK_C));
MenuItemmiPaste=newMenuItem("
粘贴"
newMenuShortcut(KeyEvent.VK_V));
MenuItemmiCut=newMenuItem("
剪切"
newMenuShortcut(KeyEvent.VK_T));
MenuItemmiFind=newMenuItem("
newMenuShortcut(KeyEvent.VK_D));
MenuItemmiReplace=newMenuItem("
newMenuShortcut(KeyEvent.VK_R));
MenuItemmiAuto=newMenuItem("
自动换行"
miAuto.addActionListener(this);
mn1.add(miSelectAll);
mn1.add(miClear);
mn1.add(miCopy);
mn1.add(miPaste);
mn1.add(miCut);
mn1.addSeparator();
mn1.add(miFind);
mn1.add(miReplace);
mn1.add(miAuto);
miSelectAll.addActionListener(this);
miClear.addActionListener(this);
miCopy.addActionListener(this);
miPaste.addActionListener(this);
miCut.addActionListener(this);
miFind.addActionListener(this);
miReplace.addActionListener(this);
Menumn2=newMenu("
格式"
MenuItemmiFont=newMenuItem("
字体"
newMenuShortcut(KeyEvent.VK_F));
MenuItemmiColor=newMenuItem("
颜色选择"
newMenuShortcut(KeyEvent.VK_K));
MenuItemmiTime=newMenuItem("
插入时间"
miFont.addActionListener(this);
miColor.addActionListener(this);
miTime.addActionListener(this);
mn2.add(miFont);
mn2.add(miColor);
mn2.add(miTime);
Menumn3=newMenu("
帮助"
MenuItemmiAbout=newMenuItem("
newMenuShortcut(KeyEvent.VK_A));
miAbout.addActionListener(this);
mn3.add(miAbout);
FileDialogfindDlg=newFileDialog(this);
Panelp5=newPanel();
Panelp6=newPanel();
Panelp7=newPanel();
p7.setLayout(newGridLayout(1,2,30,30));
p5.add(lFind);
p5.add(tFind);
p5.add(bFind);
tFind.addActionListener(this);
bFind.addActionListener(this);
p6.add(lReplace);
p6.add(tReplace);
p7.add(bReplace);
p7.add(bReplaceAll);
p6.add(p7);
tReplace.addActionListener(this);
bReplace.addActionListener(this);
bReplaceAll.addActionListener(this);
findD.setLayout(newGridLayout(2,1,10,10));
findD.setResizable(false);
findD.add(p5);
findD.add(p6);
findD.setBounds(100,100,260,190);
//弹出PopupMenu
popm=newPopupMenu();
MenuItemOpenFile=newMenuItem("
MenuItemSaveFile=newMenuItem("
MenuItemSelectAll=newMenuItem("
MenuItemCopy=newMenuItem("
MenuItemPaste=newMenuItem("
MenuItemCut=newMenuItem("
OpenFile.addActionListener(this);
SaveFile.addActionListener(this);
SelectAll.addActionListener(this);
Copy.addActionListener(this);
Paste.addActionListener(this);
Cut.addActionListener(this);
popm.add(OpenFile);
popm.add(SaveFile);
popm.add(SelectAll);
popm.add(Copy);
popm.add(Paste);
popm.add(Cut);
text.add(popm);
text.addMouseListener(newMyMouseEvent(this));
MenuBarBar=newMenuBar();
Bar.add(mn);
Bar.add(mn1);
Bar.add(mn2);
Bar.add(mn3);
setMenuBar(Bar);
setSize(800,600);
setVisible(true);
classMyMouseEventextendsMouseAdapter
MyTextPadmyParentFrame;
MyMouseEvent(MyTextPadmyf)
myParentFrame=myf;
publicvoidmouseReleased(MouseEvente)
if(e.isPopupTrigger())
myParentFrame.popm.show((Component)e.getSource(),e.getX(),e.getY());
publicvoidactionPerformed(ActionEvente)
StringstrCmd=e.getActionCommand();
if(strCmd.equals("
))
text.setFont(newFont(Str1,Font.PLAIN,15));
text.setForeground(Color.black);
text.setText("
try
openFile();
saveFile();
}catch(IOExceptione1){}
System.exit(0);
text.selectAll();
}
if(strCmd.equals("
{
text.setText("
str=text.getSelectedText();
text.insert(str,text.getCaretPosition());
text.replaceRange("
text.getSelectionStart(),text.getSelectionEnd());
d.setVisible(true);
Colorc=JColorChooser.showDialog(this,"
Color.black);
text.setForeground(c);
Red=c.getRed();
Green=c.getGreen();
Blue=c.getBlue();
if(e.getSource()==tFind||e.getSource()==bFind)
find();
return;
if(e.getSource()==tReplace||e.getSource()==bReplace)
text.requestFocus();
Strings1=tReplace.getText();
if(text.getSelectedText().equals(tFind.getText()))
intstart=text.getSelectionStart();
text.replaceRange(s1,text.getSelectionStart(),text.getSelectionEnd());
text.select(start,start+s1.length());
else
if(e.getSource()==bReplaceAll)
str=text.getText();
StringstrFind=tFind.getText();
intstart=0;
intend=str.length();
intlen=strFind.length();
intcount=0;
if(start<
=end-len)
for(;
start<
=end-len;
start++){
if(str.substring(start,start+len).equals(strFind)){
count++;
text.replaceRange(s1,start,start+len);
if