@阿乐今天敲代码没
前言
利用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