用JAVA编写的文档编辑器源代码

本文档编辑器使用JAVA编写,具备基本的文本编辑功能,如新建、打开、保存、剪切、复制、粘贴、撤消等。通过JFrame和JTextArea等组件实现界面和交互,并提供了字体、颜色和自动换行等格式设置。代码中包含事件监听和键盘快捷键支持,以及文件操作的提示和确认对话框。
摘要由CSDN通过智能技术生成

//简单的类似记事本的文档编辑器

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.awt.font.*;
import javax.swing.undo.UndoManager;
public class MyTxt

 public static void main(String[] args)
 
 Aframe frame = new Aframe();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
 }
}
class Aframe extends JFrame
{
 public Aframe()
 {
  setTitle("我的记事本");
  setSize(WIDTH, HEIGHT);
        Container contentPane = getContentPane();
        JPanel txtPanel = new JPanel();
        JPanel comboxPanel = new JPanel();
        JPanel textPanel = new JPanel();
        txtArea=new JTextArea("",17,40);
        JScrollPane scrollPane =new JScrollPane(txtArea);
        txtPanel.add(scrollPane);
        contentPane.add(comboxPanel,BorderLayout.NORTH);
        contentPane.add(txtPanel);
  contentPane.add(textPanel,BorderLayout.SOUTH);
  //Caidan lan:添加主菜单并设置快捷键
  JMenuBar menuBar =new JMenuBar();
  setJMenuBar(menuBar);
  fileMenu=new JMenu("文件(F)");
  editMenu=new JMenu("编辑(E)");
  typeMenu=new JMenu("格式(O)");
  viewMenu=new JMenu("查看(V)");
  helpMenu=new JMenu("帮助(H)");
  aboutMenu=new JMenu("关于(A)");
  fileMenu.setMnemonic('F');
  editMenu.setMnemonic('E');
  typeMenu.setMnemonic('O');
  viewMenu.setMnemonic('V');
  helpMenu.setMnemonic('H');
  aboutMenu.setMnemonic('A');
  menuBar.add(fileMenu);
  menuBar.add(editMenu);
  menuBar.add(typeMenu);
  menuBar.add(viewMenu);
     menuBar.add(aboutMenu);
  menuBar.add(helpMenu);
  //wenjian“文件”菜单的子菜单添加以及设置加速器,监听器
  aa=fileMenu.add(new ShowAction("新建"));
  aa.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
  ab=fileMenu.add(new ShowAction("打开"));
  ab.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
  ac=fileMenu.add(new ShowAction("保存"));
  ac.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  ad=fileMenu.add(new ShowAction("另存为"));
  ad.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
  fileMenu.addSeparator();
  ae=fileMenu.add(new ShowAction("页面设置"));
  ae.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
  af=fileMenu.add(new ShowAction("打印"));
  af.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
  fileMenu.addSeparator();//分割线
  ag=fileMenu.add(new ShowAction("退出"));
  ag.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
  //bianji“编辑”菜单的子菜单添加以及设置加速器,监听器
  ah=editMenu.add(new ShowAction("撤消"));
  editMenu.addSeparator();
  ah.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
  ai=editMenu.add(new ShowAction("剪切"));
  ai.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
  aj=editMenu.add(new ShowAction("复制"));
  aj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
  an=editMenu.add(new ShowAction("粘贴"));
  an.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
  ak=editMenu.add(new ShowAction("删除"));
  ak.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
  editMenu.addSeparator();
  al=editMenu.add(new ShowAction("查找"));
  al.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
  am=editMenu.add(new ShowAction("全选"));
  am.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
  //geshi“格式”菜单的子菜单添加以及设置加速器,监听器
  zdhh=new JMenu("自动换行(L)");
  zdhh.setMnemonic('L');
  typeMenu.add(zdhh);
  ButtonGroup group =new ButtonGroup();
  xz=new JRadioButtonMenuItem("选择");
  xz.addActionListener(new ShowAction("选择"));
  xz.setSelected(true);
     qxxz=new JRadioButtonMenuItem("取消");
  qxxz.addActionListener(new ShowAction("取消"));
  qxxz.setSelected(true);
  group.add(xz);group.add(qxxz);
  zdhh.add(xz);zdhh.add(qxxz);
  bj=typeMenu.add(new ShowAction("背景颜色"));
  bj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
  zt=typeMenu.add(new ShowAction("字体"));
  zt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
   //字体弹出框中的“确定”按钮
   que=new Button("确定");
         que.addActionListener(new boxlistener());  
  //chakan“查看”菜单的子菜单添加以及设置加速器,监听器
  ztl=viewMenu.add(new ShowAction("状态栏"));
  ztl.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  //guanyu“关于”菜单的子菜单添加以及设置加速器,监听器
  zzxx=aboutMenu.add(new ShowAction("作者信息"));
  zzxx.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
  bq=aboutMenu.add(new ShowAction("版权"));
  bq.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));
  sm=aboutMenu.add(new ShowAction("声明"));
  sm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  //bangzhu“帮助”菜单的子菜单添加以及设置加速器,监听器
  shm=helpMenu.add(new ShowActio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值