java记事本程序.docx
- 文档编号:6988656
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:6
- 大小:16.46KB
java记事本程序.docx
《java记事本程序.docx》由会员分享,可在线阅读,更多相关《java记事本程序.docx(6页珍藏版)》请在冰豆网上搜索。
java记事本程序
importjava.awt.*;
importjava.io.*;
importjava.awt.datatransfer.*;
importjava.awt.event.*;
class菜单extendsMenuBar{
public菜单(Frame父窗口){
父窗口.setMenuBar(this);
}
publicvoid添加菜单(String[]菜单组){
for(inti=0;i<菜单组.length;i++){
add(newMenu(菜单组[i]));
}
}
publicvoid添加菜单项(int项数,String[]菜单项){
for(inti=0;i<菜单项.length;i++){
if(菜单项[i]!
=null){
getMenu(项数).add(菜单项[i]);
}
elsegetMenu(项数).addSeparator();
}
}
publicvoid添加监听器(ActionListener全部){
for(inti=0;i for(intj=0;j getMenu(i).getItem(j).addActionListener(全部); } } } } class文件处理{ privateFileDialog对话框; public文件处理(Frame父窗口){ 对话框=newFileDialog(父窗口,"",FileDialog.LOAD); } publicString获取路径(){ return对话框.getDirectory()+"\\"+对话框.getFile(); } publicString获取数据()throwsIOException{ 对话框.setTitle("打开文件..."); 对话框.setMode(FileDialog.LOAD); 对话框.setVisible(true); BufferedReader读取缓冲=newBufferedReader(newFileReader(获取路径())); StringBuffer文本缓冲=newStringBuffer(); String单行文本; while((单行文本=读取缓冲.readLine())! =null)文本缓冲.append(单行文本+'\n'); 读取缓冲.close(); return文本缓冲.toString(); } publicvoid保存文件(String数据)throwsIOException{ 对话框.setTitle("保存文件..."); 对话框.setMode(FileDialog.SAVE); 对话框.setVisible(true); BufferedWriter写入缓冲=newBufferedWriter(newFileWriter(获取路径())); 写入缓冲.write(数据); 写入缓冲.close(); } } class剪贴板处理{ privateClipboard剪贴板; public剪贴板处理(){ 剪贴板=Toolkit.getDefaultToolkit().getSystemClipboard(); } publicvoid存入数据(String数据){ 剪贴板.setContents(newStringSelection(数据),null); } publicString获取数据(){ Transferable接口=剪贴板.getContents(null); try{ return(String)接口.getTransferData(DataFlavor.stringFlavor); }catch(Exceptione){} returnnull; } } class查找extendsDialogimplementsActionListener{ privateLabel查找标签=newLabel("查找内容: "); privateLabel替换标签=newLabel("替换内容: "); privateTextField查找框=newTextField(50); privateTextField替换框=newTextField(50); privateButton查找按钮=newButton("查找"); privateButton替换按钮=newButton("替换"); privateTextArea被查框; public查找(Frameowner,TextArea被查框){ super(owner,"查找",false); this.被查框=被查框; setLayout(null); 查找标签.setBounds(10,30,80,20); 替换标签.setBounds(10,70,80,20); 查找框.setBounds(90,30,90,20); 替换框.setBounds(90,30,90,20); 查找按钮.setBounds(190,30,80,20); 替换按钮.setBounds(190,30,80,20); add(查找标签);add(替换标签);add(查找框);add(替换框);add(替换按钮);add(查找按钮); setResizable(false); 查找按钮.addActionListener(this); 替换按钮.addActionListener(this); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ 查找.this.dispose(); } }); } publicvoid显示查找(){ setTitle("查找..."); setSize(280,60); setVisible(true); } publicvoid显示替换(){ setTitle("查找并替换..."); setSize(280,110); setVisible(true); } privatevoid查找(){ String文本=被查框.getText(); String查文本=查找框.getText(); int结尾=文本.length(); int长度=查文本.length(); int起始位置=被查框.getSelectionEnd(); if(起始位置==结尾)起始位置=0; for(;起始位置<=结尾-长度;起始位置++){ if(查文本.equals(文本.substring(起始位置,起始位置+长度))){ 被查框.setSelectionStart(起始位置); 被查框.setSelectionEnd(起始位置+长度); return; } } 被查框.setSelectionStart(结尾); 被查框.setSelectionEnd(结尾); } privatevoid替换(){ String替换文本=替换框.getText(); if(被查框.getText().equals(替换框.getText())) 被查框.replaceRange(替换文本,被查框.getSelectionStart(),被查框.getSelectionEnd()); else查找(); } publicvoidactionPerformed(ActionEvent事件){ if(事件.getSource()==查找按钮)查找(); elseif(事件.getSource()==替换按钮)替换(); } } publicclass记事本extendsFrameimplementsActionListener{ /** *@paramargsthecommandlinearguments */ privateTextArea编辑框=newTextArea(); private文件处理文件=new文件处理(this); private剪贴板处理剪贴板=new剪贴板处理(); private查找查找对话=new查找(this,编辑框); privateString[]菜单栏=newString[]{"文件","编辑","查找","帮助"}; privateString[]子菜单0=newString[]{"新建","打开","保存",null,"退出"}; privateString[]子菜单1=newString[]{"剪切","复制","粘贴","清除",null,"全选"}; privateString[]子菜单2=newString[]{"查找",null,"查找替换"}; privateString[]子菜单3=newString[]{"关于记事本..."}; public记事本(String标题){ super(标题); 菜单本菜单=new菜单(this); 本菜单.添加菜单(菜单栏); 本菜单.添加菜单项(0,子菜单0); 本菜单.添加菜单项(1,子菜单1); 本菜单.添加菜单项(2,子菜单2); 本菜单.添加菜单项(3,子菜单3); add(编辑框); 本菜单.添加监听器(this); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ 记事本.this.dispose(); } }); } publicvoidMain(Stringarg){ } publicvoidactionPerformed(ActionEvent事件){ String选择项=(String)事件.getActionCommand(); if(选择项.equals(子菜单0[0]))编辑框.setText(""); elseif(选择项.equals(子菜单0[1])){ try{ 编辑框.setText(文件.获取数据()); }catch(IOExceptionioe){} } elseif(选择项.equals("子菜单0[2]")){ try{ 文件.保存文件(编辑框.getText()); }catch(IOExceptionioe){} } elseif(选择项.equals("子菜单0[4]")){ dispose(); } elseif(选择项.equals("子菜单1[0]")){ 剪贴板.存入数据(编辑框.getSelectedText()); 编辑框.replaceRange("",编辑框.getSelectionStart(),编辑框.getSelectionEnd()); } elseif(选择项.equals("子菜单1[1]")){ 剪贴板.存入数据(编辑框.getSelectedText()); } elseif(选择项.equals("子菜单1[2]")){ String获得文本=剪贴板.获取数据(); 编辑框.replaceRange(获得文本,编辑框.getSelectionStart(),编辑框.getSelectionEnd()); } elseif(选择项.equals("子菜单1[3]")){ 编辑框.replaceRange("",编辑框.getSelectionStart(),编辑框.getSelectionEnd()); } elseif(选择项.equals("子菜单1[5]")){ 编辑框.setSelectionStart(0); 编辑框.setSelectionEnd(编辑框.getText().length()); } elseif(选择项.equals("子菜单2[0]")){ 查找对话.显示查找(); } elseif(选择项.equals("子菜单2[2]")){ 查找对话.显示替换(); } } publicstaticvoidmain(String[]args){ //TODOcodeapplicationlogichere 记事本记事本实例=new记事本("我的记事本"); 记事本实例.setSize(300,300); 记事本实例.setVisible(true); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 记事本 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)