📄 mainframe.java
字号:
//MainFrame:构建主窗体
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class MainFrame extends JFrame implements Serializable{
//菜单栏成员变量
File file=null;
JMenuBar mb;
JMenu fileMenu;
JMenuItem newFile;
JMenuItem openFile;
JMenuItem saveFile;
JMenuItem saveAs;
JMenuItem exitPrg;
JMenu editMenu;
JMenuItem cutText;
JMenuItem copyText;
JMenuItem pasteText;
JMenu formatMenu;
JMenuItem fontOption;
JMenuItem alignLeft;
JMenuItem alignCenter;
JMenuItem alignRight;
JMenuItem styleBold;
JMenuItem styleItalic;
JMenuItem stylePlain;
JMenu helpMenu;
JMenuItem about;
//工具栏成员变量
JToolBar tb;
ToolButton bNewFile;
ToolButton bOpenFile;
ToolButton bSaveFile;
ToolButton bCut;
ToolButton bCopy;
ToolButton bPaste;
ToolButton bExit;
//文本编辑区成员变量
JTextPane tp;
JScrollPane spOfTextArea;
Font defaultFont = new Font("Times New Roman",Font.PLAIN,16);
//创建监听器对象
FileHandle fh = new FileHandle(this);
EditHandle eh = new EditHandle(this);
FormatHandle fmh = new FormatHandle(this);
HelpHandle hh = new HelpHandle(this);
//构造方法建立主窗口
public MainFrame(){
Container c = this.getContentPane();
this.buildMenu();
this.buildToolBar();
this.buildTextArea();
this.setJMenuBar(mb);
c.add(tb,BorderLayout.NORTH);
c.add(spOfTextArea,BorderLayout.CENTER);
this.setTitle("我的记事本");
this.setBounds(200,200,600,400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//建立菜单栏
public void buildMenu(){
mb = new JMenuBar();
mb.setOpaque(true); //设置工具栏可见
fileMenu = buildFileMenu();
editMenu = buildEditMenu();
formatMenu = buildFormatMenu();
helpMenu = buildHelpMenu();
mb.add(fileMenu);
mb.add(editMenu);
mb.add(formatMenu);
mb.add(helpMenu);
}
//建立工具栏
public void buildToolBar(){
tb = new JToolBar();
tb.setFloatable(false);
ImageIcon iconNewFile = new ImageIcon("imgs/8.gif");
bNewFile = new ToolButton("新建",iconNewFile);
tb.add(bNewFile);
ImageIcon iconOpenFile = new ImageIcon("imgs/9.gif");
bOpenFile = new ToolButton("打开",iconOpenFile);
tb.add(bOpenFile);
ImageIcon iconSaveFile = new ImageIcon("imgs/10.gif");
bSaveFile = new ToolButton("保存",iconSaveFile);
tb.add(bSaveFile);
tb.addSeparator();
ImageIcon iconCut = new ImageIcon("imgs/11.gif");
bCut = new ToolButton("剪切",iconCut);
tb.add(bCut);
ImageIcon iconCopy = new ImageIcon("imgs/12.gif");
bCopy = new ToolButton("复制",iconCopy);
tb.add(bCopy);
ImageIcon iconPaste = new ImageIcon("imgs/13.gif");
bPaste = new ToolButton("粘贴",iconPaste);
tb.add(bPaste);
tb.addSeparator();
ImageIcon iconExit = new ImageIcon("imgs/14.gif");
bExit = new ToolButton("退出",iconExit);
tb.add(bExit);
//为工具栏按钮注册监听器
bNewFile.addActionListener(fh);
bOpenFile.addActionListener(fh);
bSaveFile.addActionListener(fh);
bCut.addActionListener(eh);
bCopy.addActionListener(eh);
bPaste.addActionListener(eh);
bExit.addActionListener(fh);
}
//建立文本编辑区
public void buildTextArea(){
tp = new JTextPane();
spOfTextArea = new JScrollPane(tp);
tp.setFont(defaultFont);
}
//建立文件菜单
public JMenu buildFileMenu(){
JMenu fileMenu = new JMenu("文件(F)");
newFile = new JMenuItem("新建");
openFile = new JMenuItem("打开");
saveFile = new JMenuItem("保存");
saveAs = new JMenuItem("另存为");
exitPrg = new JMenuItem("退出");
fileMenu.setMnemonic('F');
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.add(saveFile);
fileMenu.add(saveAs);
fileMenu.addSeparator();
fileMenu.add(exitPrg);
//注册文件菜单项上的监听器
newFile.addActionListener(fh);
openFile.addActionListener(fh);
saveFile.addActionListener(fh);
saveAs.addActionListener(fh);
exitPrg.addActionListener(fh);
return fileMenu;
}
//建立编辑菜单
public JMenu buildEditMenu(){
JMenu editMenu = new JMenu("编辑(E)");
editMenu.setMnemonic('E');
cutText = new JMenuItem("剪切");
copyText = new JMenuItem("复制");
pasteText = new JMenuItem("粘贴");
editMenu.add(cutText);
editMenu.add(copyText);
editMenu.add(pasteText);
//注册编辑菜单项上的监听器
cutText.addActionListener(eh);
copyText.addActionListener(eh);
pasteText.addActionListener(eh);
return editMenu;
}
//建立格式菜单
public JMenu buildFormatMenu()
{
JMenu formatMenu = new JMenu("格式(O)");
formatMenu.setMnemonic('O');
fontOption = new JMenuItem("字体");
alignLeft = new JMenuItem("左对齐");
alignCenter = new JMenuItem("居中对齐");
alignRight = new JMenuItem("右对齐");
styleBold = new JMenuItem("加粗");
styleItalic = new JMenuItem("斜体");
stylePlain = new JMenuItem("无特殊样式");
formatMenu.add(fontOption);
formatMenu.addSeparator();
formatMenu.add(alignLeft);
formatMenu.add(alignCenter);
formatMenu.add(alignRight);
formatMenu.addSeparator();
formatMenu.add(styleBold);
formatMenu.add(styleItalic);
formatMenu.add(stylePlain);
//格式菜单项注册监听器
fontOption.addActionListener(fmh);
alignLeft.addActionListener(fmh);
alignCenter.addActionListener(fmh);
alignRight.addActionListener(fmh);
styleBold.addActionListener(fmh);
styleItalic.addActionListener(fmh);
stylePlain.addActionListener(fmh);
return formatMenu;
}
//建立帮助菜单
public JMenu buildHelpMenu(){
JMenu helpMenu = new JMenu("帮助(H)");
helpMenu.setMnemonic('H');
about = new JMenuItem("About");
helpMenu.add(about);
about.addActionListener(hh);
return helpMenu;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -