




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*java.awt.是Java中的一个软件包 功能是包含用于创建用户界面和绘制图形图像的所有类*/import java.awt.CheckboxMenuItem;/*复选框类*/import java.awt.Container;/*容器类*/import java.awt.FileDialog;/*文件对话框*/import java.awt.FlowLayout;/*流式布局类;组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列*/import java.awt.GraphicsEnvironment;/*图形环境类*/import java.awt.Menu;/*菜单类*/import java.awt.MenuBar;/*菜单条类*/import java.awt.MenuItem;/*菜单项类*/import java.awt.MenuShortcut;import java.awt.TextArea;/*显示文本的多行区域类*/import java.awt.Window;import java.awt.Toolkit;/*java.awt.datatransfer也是java中的一个软件包,提供在应用程序之间和在应用程序内部传输数据的接口和类,它还提供一种剪贴板机制,程序中实现剪切、粘贴、复制功能时,都要用到这个包*/import java.awt.datatransfer.Clipboard;/*描述剪贴板的类*/import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;/*字符串选择类*/import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;/*java.awt.event.提供处理由 AWT 组件所激发的各类事件的接口和类*/import java.awt.event.ActionEvent;/*事件源类*/import java.awt.event.ActionListener;/*监视器类*/import java.awt.event.WindowAdapter;/*窗口适配器类*/import java.awt.event.KeyEvent;/按键事件类import java.awt.event.WindowEvent;/*窗口事件类*/*java.io.提供了全面的IO接口,包括:文件读写、标准设备输出,程序中文件新建、打开、保存都是调用该软件包中的类*/import java.io.BufferedReader;/*从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。*/import java.io.BufferedWriter;/*将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。*/import java.io.File;/*文件和目录路径名的抽象表示形式*/import java.io.FileNotFoundException;/*容器类*/import java.io.FileReader;/*用来读取字符文件的便捷类*/import java.io.FileWriter;/*用来写入字符文件的便捷类*/import java.io.IOException;/*IO流异常类*/*/import java.util.logging.Level;import java.util.logging.Logger;/*javax.swing是一个用于开发Java应用程序用户界面的开发工具包*/import javax.swing.JButton;/按钮import javax.swing.JComboBox;import javax.swing.JDialog;/对话框import javax.swing.JFileChooser;/文件选择,打开、保存文件import javax.swing.JFrame;/框架,主程序窗口import javax.swing.JLabel;/标签import javax.swing.JOptionPane;/消息提示框import javax.swing.JPanel;/面板import javax.swing.JTextField;public class notebook / 记事本的具体实现类 private static final long serialVersionUID = 1L; private TextArea content; private String filePath = ;/先让路径为空 Toolkit toolKit = Toolkit.getDefaultToolkit(); Clipboard clipboard = toolKit.getSystemClipboard(); public notebook() /创建一个JFrame对象;并设置相关属性 final JFrame jf = new JFrame(TJP的记事本); jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); jf.setBounds(100,100,500,500); jf.setResizable(true); jf.setVisible(true); /创建菜单栏 MenuBar menu = new MenuBar(); jf.setMenuBar(menu); /创建并添加文本框 content = new TextArea(,50,50,TextArea.SCROLLBARS_VERTICAL_ONLY); jf.add(content); content.setVisible(true); content.requestFocusInWindow(); /菜单栏添加内容 Menu filemenu = new Menu(文件); Menu editmenu = new Menu(编辑); menu.add(filemenu); menu.add(editmenu); /创建文件菜单上的各个菜单项并添加到菜单上 MenuItem newitem = new MenuItem(新建); newitem.setShortcut(new MenuShortcut(KeyEvent.VK_N,false); filemenu.add(newitem); MenuItem openitem = new MenuItem(打开); openitem.setShortcut(new MenuShortcut(KeyEvent.VK_O,false); filemenu.add(openitem); MenuItem saveitem = new MenuItem(保存); saveitem.setShortcut(new MenuShortcut(KeyEvent.VK_S,false); filemenu.add(saveitem); MenuItem saveasitem = new MenuItem(另存为); saveasitem.setShortcut(new MenuShortcut(KeyEvent.VK_A,false); filemenu.add(saveasitem); /添加监听器来实现文件菜单上的各个菜单项的功能 /新建菜单项的功能实现 newitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String con = content.getText(); if(!con.equals()/文本域里文本不为空 int result = JOptionPane.showConfirmDialog( null, (是否要保存?),(保存文件.),JOptionPane.YES_NO_CANCEL_OPTION); if(result = JOptionPane.NO_OPTION)/不保存 content.setText(); else if(result = JOptionPane.CANCEL_OPTION)/取消新建 else if(result = JOptionPane.YES_OPTION)/选择保存 JFileChooser jfc = new JFileChooser();/用于选择保存路径的文件名 int bcf = jfc.showSaveDialog(jf); if(bcf = JFileChooser.APPROVE_OPTION) try /保存文件 BufferedWriter bfw = new BufferedWriter( new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+.txt); filePath = jfc.getSelectedFile().getAbsolutePath()+.txt;/获取文件保存的路径 bfw.write(con);/向文件写出数据 bfw.flush(); bfw.close();/关闭输出流 catch (IOException ex) Logger.getLogger(notebook.class.getName().log(Level.SEVERE, null, ex); new notebook();/新建文本文件 ); /打开菜单项的功能实现 openitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) FileDialog dialog = new FileDialog(new JFrame(),打开.,FileDialog.LOAD);dialog.setVisible(true);filePath = dialog.getDirectory() + dialog.getFile(); System.out.println(filePath);File file = new File(filePath);BufferedReader br = null;StringBuilder sb = new StringBuilder();trybr = new BufferedReader (new FileReader(file);String str = null;while (str = br.readLine() != null)sb.append(str).append(n);content.setText(sb.toString();catch(FileNotFoundException e1)e1.printStackTrace();catch(IOException e1)e1.printStackTrace();finallyif(br != null)trybr.close();catch(IOException e1)e1.printStackTrace(); ); /保存菜单项的功能实现 saveitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) FileDialog dialog = new FileDialog(new JFrame(),保存.,FileDialog.SAVE);dialog.setVisible(true);filePath = dialog.getDirectory() + dialog.getFile();if(filePath.equals()/没有路径时,就另存为 JFileChooser jfc = new JFileChooser();/用于选择保存路径的文件名 int bcf = jfc.showSaveDialog(jf);/弹出保存窗口 if(bcf = JFileChooser.APPROVE_OPTION) try /保存文件 BufferedWriter bfw = new BufferedWriter( new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+.txt); filePath = jfc.getSelectedFile().getAbsolutePath(); bfw.write(content.getText();/向文件写出数据 bfw.flush(); bfw.close();/关闭输出流 catch (IOException ex) Logger.getLogger(notebook.class.getName().log(Level.SEVERE, null, ex); else/路径不为空时,保存在原来的路径下 try /保存文件 BufferedWriter bfw = new BufferedWriter( new FileWriter( new File(filePath); bfw.write(content.getText();/向文件写出数据 bfw.flush(); bfw.close();/关闭输出流 catch (IOException ex) Logger.getLogger(notebook.class.getName().log(Level.SEVERE, null, ex); ); /另存为菜单项的功能实现 saveasitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) JFileChooser jfc = new JFileChooser();/用于选择保存路径的文件名 int bcf = jfc.showSaveDialog(jf);/弹出保存窗口 if(bcf = JFileChooser.APPROVE_OPTION) try /保存文件 BufferedWriter bfw = new BufferedWriter( new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+.txt); filePath = jfc.getSelectedFile().getAbsolutePath(); bfw.write(content.getText();/向文件写出数据 bfw.flush(); bfw.close();/关闭输出流 catch (IOException ex) Logger.getLogger(notebook.class.getName().log(Level.SEVERE, null, ex); ); /创建编辑菜单上的各个菜单项并添加到菜单上 MenuItem cutitem = new MenuItem(剪切); cutitem.setShortcut(new MenuShortcut(KeyEvent.VK_X,false); editmenu.add(cutitem); MenuItem copyitem = new MenuItem(复制); copyitem.setShortcut(new MenuShortcut(KeyEvent.VK_C,false); editmenu.add(copyitem); MenuItem pasteitem = new MenuItem(粘贴); pasteitem.setShortcut(new MenuShortcut(KeyEvent.VK_V,false); editmenu.add(pasteitem); MenuItem deleteitem = new MenuItem(删除); deleteitem.setShortcut(new MenuShortcut(KeyEvent.VK_DELETE,false); editmenu.add(deleteitem); editmenu.addSeparator(); MenuItem finditem = new MenuItem(查找); finditem.setShortcut(new MenuShortcut(KeyEvent.VK_F,false); editmenu.add(finditem); /添加监听器来实现编辑菜单上的各个菜单项的功能 /剪切菜单项的功能实现 cutitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String text = content.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null);if(text.length() = 0)return;elsecontent.replaceRange(, content.getSelectionStart(),content.getSelectionEnd(); ); /复制菜单项的功能实现 copyitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String text = content.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null); ); /粘贴菜单项的功能实现 pasteitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) Transferable contents = clipboard.getContents(this);String str =null;try str = (String) contents.getTransferData(DataFlavor.stringFlavor); catch (UnsupportedFlavorException e1) e1.printStackTrace(); catch (IOException e1) e1.printStackTrace();if (str = null)return;try content.replaceRange(str,content.getSelectionStart(),content.getSelectionEnd(); catch (Exception e1) e1.printStackTrace(); ); /删除菜单项的功能实现 deleteitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) content.replaceRange(,content.getSelectionStart(),content.getSelectionEnd(); ); /查找菜单项的功能实现 finditem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) final JDialog dialog = new JDialog(jf,查找字符串.,true);dialog.setBounds(560,250,310,130);JLabel find = new JLabel(请输入字符串 :);final JTextField findtext = new JTextField(1);JButton jbu = new JButton(查找);dialog.setLayout(null);find.setBounds(10,30,90,20);findtext.setBounds(100,30,90,20);jbu.setBounds(200,30,80,20);dialog.add(find);dialog.add(findtext);dialog.add(jbu);jbu.addActionListener(new ActionListener()public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 21109:2025 EN Nicotine pouches - Test method for pH
- 【正版授权】 IEC 62841-4-3:2020+AMD1:2025 CSV EN Electric motor-operated hand-held tools,transportable tools and lawn and garden machinery - Safety - Part 4-3: Particular requirements f
- 【正版授权】 IEC/IEEE 65700-19-03:2025 RLV EN Bushings for DC application
- 【正版授权】 IEC 62053-22:2003 EN-D Electricity metering equipment (a.c.) - Particular Requirements - Part 22: Static meters for active energy (classes 0,2 S and 0,5 S)
- 校外消防知识培训课件
- 校园防踩踏安全知识培训课件
- java文件读写面试题及答案
- 北京财务知识培训行情课件
- 安徽速写考试题及答案
- 国家保密考试题及答案
- 医药代表销售技巧培训 (2)课件
- 中国移动室分问题排查优化指导手册
- 顺丰同城管理制度
- 妊娠期阴道炎的健康宣教
- 京东代运营合同模板正规范本(通用版)
- 深圳富源文武学校语文新初一分班试卷
- 口腔修复学可摘局部义齿
- “四电”工程施工工艺标准
- GB/T 35051-2018选煤厂洗水闭路循环等级
- 急诊与灾难医学:昏迷课件
- 实验报告-探究杠杆的平衡条件
评论
0/150
提交评论