//简单的类似记事本的文档编辑器
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“查看”菜单的子菜单添加以及设置加速器,监听器