Java设计文本编辑器

Java设计文本编辑器阿乐今天敲代码没 Java 设计文本编辑器前言一 实现功能二 扼要代码 1 界面程序设计 2 文件菜单设计 3 编辑菜单栏设计 4 格式菜单栏设计运行截图前言利用 Java 设计一个文本编辑器 提示 以下是本篇文章正文内容 下面案例可供参考一 实现功能该简易记事本主要可实现以下几个功能 1 菜单中有 文件 编辑 格式 三个主菜单 2 文件 有 打开 保存 退出 三个子菜单 分别用于打开文件 保存文件 退出记事本 3 编辑 中有 剪切 复制 粘贴 三个子菜单 用于剪

@阿乐今天敲代码没


前言

利用Java设计一个文本编辑器。


提示:以下是本篇文章正文内容,下面案例可供参考

一、实现功能

该简易记事本主要可实现以下几个功能:
(1)菜单中有“文件”、“编辑”、“格式”三个主菜单。
(2)“文件”有“打开”、“保存”、“退出”三个子菜单:分别用于打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”、“复制”、“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字操作。
(4)“格式”中有“自动换行”,“取消自动换行”,“断行不断字”, “取消断行不断字”四个子菜单,分别用于设置是否自动换行等。
用户可根据需求选择是否是用鼠标右键进行一系列的编辑操作,进一步体验记事本的性能。




二、扼要代码

1.界面程序设计

创建一个下拉菜单和文本域,在文本域中显示编辑的文件内容。 private JPopupMenu pm; private JMenuItem item1,item2,item3,item4,item5; public Nodepad() { 
      super("简单记事本"); setSize(400,300); try{ 
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e){ 
      System.err.println("不能被设置外观的原因:"+e);} c=getContentPane(); //创建一个内容面板  editor = new JTextArea(); //创建一个文本区 c.add(new JScrollPane(editor)); //设置滚动条,并添加到内容面板  —————————————————————————————— //弹出菜单的实现  pm =new JPopupMenu(); //创建弹出菜单  item1 = new JMenuItem("打开"); item2 = new JMenuItem("保存"); item3 = new JMenuItem("复制"); item4 = new JMenuItem("剪切"); item5 = new JMenuItem("粘贴"); JPHandler JP=new JPHandler(); item1.addActionListener(JP); //注册菜单项的鼠标事件监听器  item2.addActionListener(JP); item3.addActionListener(JP); item4.addActionListener(JP); item5.addActionListener(JP); editor.addMouseListener(JP); //注册文本区的鼠标事件监听器  pm.add(item1); pm.add(item2); pm.add(item3); pm.add(item4); pm.add(item5); //把菜单栏、工具栏、弹出菜单添加到内容面板  setJMenuBar(mb); //显示菜单栏  c.add(toolBar,BorderLayout.NORTH); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 

2.文件菜单设计

//文件菜单的实现  mb = new JMenuBar(); //创建菜单栏 fileMenu = new JMenu("文件(F)");//创建菜单 fileMenuOpen = new JMenuItem("打开(O)...Ctrl+O"); fileMenuSave = new JMenuItem("保存(S)...Ctrl+S"); fileMenuExit = new JMenuItem("退出"); JMHandler JM=new JMHandler(); //创建监听器 fileMenuOpen.addActionListener(JM); //注册监听器 fileMenuSave.addActionListener(JM); fileMenuExit.addActionListener(JM); fileMenu.add(fileMenuOpen); fileMenu.add(fileMenuSave); fileMenu.addSeparator(); //添加分隔线  fileMenu.add(fileMenuExit); fileMenu.setFont(f); //设置菜单中文体的字体 

3.编辑菜单栏设计

//编辑菜单的实现  editMenu = new JMenu("编辑(E)"); editMenuCopy = new JMenuItem("复制(C) Ctrl+C"); editMenuCut = new JMenuItem("剪切(T) Ctrl+X"); editMenuPaste = new JMenuItem("粘贴(P) Ctrl+v"); EMHandler EM=new EMHandler(); //创建监听器 editMenuCopy.addActionListener(EM);//注册监听器  editMenuCut.addActionListener(EM); editMenuPaste.addActionListener(EM); editMenu.add(editMenuCopy); editMenu.add(editMenuCut); editMenu.add(editMenuPaste); editMenu.setFont(f); 

4.格式菜单栏设计

//格式菜单的实现  formatMenu = new JMenu("格式(O)"); //创建菜单  formatSet = new JMenu("格式设置"); //二级菜单  lineWrap = new JMenuItem("自动换行"); //二级菜单项  cancleLineWrap = new JMenuItem("取消自动换行"); wrapStyleWord = new JMenuItem("断行不断字"); cancleWrapStyleWord = new JMenuItem("取消断行不断字"); FMHandler FM=new FMHandler(); //创建事件监听器  lineWrap.addActionListener(FM); //注册二级菜单项的监听器 cancleLineWrap.addActionListener(FM); wrapStyleWord.addActionListener(FM); cancleWrapStyleWord.addActionListener(FM); formatSet.add(lineWrap); formatSet.add(cancleLineWrap); formatSet.addSeparator(); //添加分隔线 formatSet.add(wrapStyleWord); formatSet.add(cancleWrapStyleWord); formatMenu.add(formatSet); formatMenu.setFont(f); //将菜单全部添加菜单棒里 mb.add(fileMenu); mb.add(editMenu); mb.add(formatMenu); 

运行截图

文本编辑器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233713.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu服务器硬件配置

    ubuntu服务器硬件配置1.系统cat/etc/issue2.内存free-h3.硬盘df-h4.CPUcat/proc/cpuinfocpu个数cat/proc/cpuinfo|grep”physicalid”|sort|uniq|wc-l

    2022年10月21日
    3
  • 梦幻诛仙搭建教程_梦幻诛仙架设外网

    梦幻诛仙搭建教程_梦幻诛仙架设外网目前关于诛仙私服是否存在的争论还是在吵,但是我从网上找一一份诛仙私服架设教程,而且是比较傻瓜版的,新手也能看明白,发出来分享一下.本来准备自己架个自己玩的但看到SQL2005太大我的网速又慢就没装了等有机会搞来装装。如原著看到了别见怪我只是放这里自己留着看看。架设使用SQL数据库:SQLsever2005pro将服务器端解压缩到D:盘D:\Sagasevr下有6个文件夹1:databaseSQL…

    2022年10月5日
    3
  • 为有机会进大厂,程序员必须掌握的核心算法有哪些?

    由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过…

    2022年4月6日
    45
  • java.nio.Buffer 中的 flip()方法

    java.nio.Buffer 中的 flip()方法

    2022年3月7日
    56
  • C# 开发上位机软件[通俗易懂]

    C# 开发上位机软件[通俗易懂]目前正进行上位机软件开发,有兴趣的朋友,可以一起参与,联系qq-19066432

    2022年5月25日
    47
  • virtualenv

    virtualenv

    2022年3月8日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号