记事本程序全版Word格式.docx
- 文档编号:21377037
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:13
- 大小:102.76KB
记事本程序全版Word格式.docx
《记事本程序全版Word格式.docx》由会员分享,可在线阅读,更多相关《记事本程序全版Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
记事本就具备编辑功能,可以及时根据大家需求进行新建、保存操作。
记事本筐架图2-1
三、系统的实现
3.1主界面包括
文件、编辑、查找、帮助操作界面子目录包括复制、粘贴、新建、查找等,如图3-1显示。
图3-1.1
图3-1.2
图3-1.3
图3-1.4
3.1完成图3-1程序代码如下
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.awt.datatransfer.*;
classMyMenuBarextendsMenuBar{
publicMyMenuBar(Frameparent){
parent.setMenuBar(this);
}
publicvoidaddMenus(String[]menus){
for(inti=0;
i<
menus.length;
i++)
add(newMenu(menus[i]));
publicvoidaddMenuItems(intmenuNumber,String[]items){
items.length;
i++){
if(items[i]!
=null)
getMenu(menuNumber).add(newMenuItem(items[i]));
elsegetMenu(menuNumber).addSeparator();
publicvoidaddActionListener(ActionListeneral){
getMenuCount();
for(intj=0;
j<
getMenu(i).getItemCount();
j++)
getMenu(i).getItem(j).addActionListener(al);
}
classMyFile{
privateFileDialogfDlg;
publicMyFile(Frameparent){
fDlg=newFileDialog(parent,"
"
FileDialog.LOAD);
privateStringgetPath(){
returnfDlg.getDirectory()+"
\\"
+fDlg.getFile();
publicStringgetData()throwsIOException{
fDlg.setTitle("
打开"
);
fDlg.setMode(FileDialog.LOAD);
fDlg.setVisible(true);
BufferedReaderbr=newBufferedReader(newFileReader(getPath()));
StringBuffersb=newStringBuffer();
Stringaline;
while((aline=br.readLine())!
sb.append(aline+'
\n'
br.close();
returnsb.toString();
publicvoidsetData(Stringdata)throwsIOException{
保存"
fDlg.setMode(FileDialog.SAVE);
BufferedWriterbw=newBufferedWriter(newFileWriter(getPath()));
bw.write(data);
bw.close();
classMyClipboard{
privateClipboardcb;
publicMyClipboard(){
cb=Toolkit.getDefaultToolkit().getSystemClipboard();
publicvoidsetData(Stringdata){
cb.setContents(newStringSelection(data),null);
publicStringgetData(){
Transferablecontent=cb.getContents(null);
try{
return(String)content.getTransferData(DataFlavor.stringFlavor);
//DataFlavor.stringFlavor会将剪贴板中的字符串转换成Unicode码形式的String对象。
//DataFlavor类是与存储在剪贴板上的数据的形式有关的类。
}catch(Exceptionue){}
returnnull;
classMyFindDialogextendsDialogimplementsActionListener{
privateLabellFind=newLabel("
查找字符串"
privateLabellReplace=newLabel("
替换字符串"
privateTextFieldtFind=newTextField(10);
privateTextFieldtReplace=newTextField(10);
privateButtonbFind=newButton("
查找"
privateButtonbReplace=newButton("
替换"
privateTextAreata;
publicMyFindDialog(Frameowner,TextAreata){
super(owner,"
false);
this.ta=ta;
setLayout(null);
lFind.setBounds(10,30,80,20);
lReplace.setBounds(10,70,80,20);
tFind.setBounds(90,30,90,20);
tReplace.setBounds(90,70,90,20);
bFind.setBounds(190,30,80,20);
bReplace.setBounds(190,70,80,20);
add(lFind);
add(tFind);
add(bFind);
add(lReplace);
add(tReplace);
add(bReplace);
setResizable(false);
bFind.addActionListener(this);
bReplace.addActionListener(this);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
MyFindDialog.this.dispose();
});
}//构造函数结束
publicvoidshowFind(){
setTitle("
setSize(280,60);
setVisible(true);
publicvoidshowReplace(){
查找替换"
setSize(280,110);
privatevoidfind(){
Stringtext=ta.getText();
Stringstr=tFind.getText();
intend=text.length();
intlen=str.length();
intstart=ta.getSelectionEnd();
if(start==end)start=0;
for(;
start<
=end-len;
start++){
if(text.substring(start,start+len).equals(str)){
ta.setSelectionStart(start);
ta.setSelectionEnd(start+len);
return;
//若找不到待查字符串,则将光标置于末尾
ta.setSelectionStart(end);
ta.setSelectionEnd(end);
publicButtongetBFind(){
returnbFind;
privatevoidreplace(){
Stringstr=tReplace.getText();
if(ta.getSelectedText().equals(tFind.getText()))
ta.replaceRange(str,ta.getSelectionStart(),ta.getSelectionEnd());
elsefind();
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==bFind)
find();
elseif(e.getSource()==bReplace)
replace();
classMyMemoextendsFrameimplementsActionListener{
privateTextAreaeditor=newTextArea();
//可编辑的TextArea
privateMyFilemf=newMyFile(this);
//MyFile对象
privateMyClipboardcb=newMyClipboard();
privateMyFindDialogfindDlg=newMyFindDialog(this,editor);
publicMyMemo(Stringtitle){//构造函数
super(title);
MyMenuBarmb=newMyMenuBar(this);
//添加需要的菜单及菜单项
mb.addMenus(newString[]{"
文件"
"
编辑"
帮助"
});
mb.addMenuItems(0,newString[]{"
新建"
null,"
全选"
mb.addMenuItems(1,newString[]{"
剪贴"
复制"
粘贴"
清除"
mb.addMenuItems(2,newString[]{"
mb.addMenuItems(3,newString[]{"
我的记事本信息"
add(editor);
//为菜单项注册动作时间监听器
mb.addActionListener(this);
MyMemo.this.dispose();
//分号不能忘了
}//构造函数完
publicvoidactionPerformed(ActionEvente){
Stringselected=e.getActionCommand();
//获取菜单项标题
if(selected.equals("
))
editor.setText("
elseif(selected.equals("
)){
editor.setText(mf.getData());
}catch(IOExceptionie){}
{
mf.setData(editor.getText());
退出"
dispose();
//将选中的字符串复制到剪贴板中并清除字符串
cb.setData(editor.getSelectedText());
editor.replaceRange("
editor.getSelectionStart(),editor.getSelectionEnd());
Stringstr=cb.getData();
editor.replaceRange(str,editor.getSelectionStart(),editor.getSelectionEnd());
//粘贴在光标位置
editor.setSelectionStart(0);
editor.setSelectionEnd(editor.getText().length());
findDlg.showFind();
findDlg.showReplace();
publicstaticvoidmain(String[]args)
MyMemomemo=newMyMemo("
记事本"
memo.setSize(650,450);
memo.setVisible(true);
四、操作方法与试验结果
4.1操作方法
将需的文字录入该文本框,然后进行该程序的功能测试,以《我住在麦子里》为例。
我们要实现文本框的查找功能。
如查找文中的“大地”,将鼠标移动到查找后单击,然后输入“大地”。
图4-1.1
4.2复制粘贴功能
选中复制内容,点击复制,然后在需要的位置点击粘贴。
图4-1.2
4.3实验结果
输入要查找的内容之后,点击“查找”,程序就能找出文中包含“大地”的这句。
并将其置于页顶。
实现了文字的查找功能。
对于所复制的内容将光标移动到相应的位置,然后点击粘贴,之后就实现了文字的复制粘贴功能。
五、设计体会
通过设计记事本小程序,了解了实现该类型程序的方法,掌握了需要用到的代码、类、算法等。
有些小问题还是没有掌握,比如查找文字的时候怎样使文字的状态是选中的。
这个程序还有许多需要改进的地方,比如快捷键的设置,子菜单的分隔等等。
我将在今后的学习过程中尽量完善自己的编程水平,使自己能够尽快的适应社会工作的需要,以求做到最好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)