⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 java写字板 功能于windows自带的写字板相似
💻 JAVA
📖 第 1 页 / 共 3 页
字号:


package WordTest;
 import java.awt.*;
import java.awt.Font;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*; 
 import java.io.*;
  import java.util.*;
  //一些弹出组件的包
  //import pic.*;
  import WordTest.*;
 

  //定义一个主窗体类,有主窗口的窗体组件,布局,监听接口,组件事件监听注册,鼠标和键盘事件监听,
  //定义保护域,以供子类,子类有事件处理逻辑函数,字体,查找等JDialog
  //窗口单独写在一个包类,分开写;类的关系更明确;
public class MainFrame extends JFrame implements ActionListener{
     

// <editor-fold defaultstate="collapsed" desc=" 定义的窗体域 ">      
        ///其他需要用的中间量
    private int fontstatus=0;//设置格式栏中需要用的量,保存选择结果
        private boolean checksave = false;//判断是否保存    
           static final String newline="\n";//回车
        private File file = null;//打开文件等文件操作要用到的量,同时将没有保存的
        //,没有建立的文件进行暂时的保存
        private LogicEvent logicev;//声明添加菜单的函数
        private FontTest ff;//字体类
        private Font fonttext;//设置字体需要用的量
       private FindText ft;//查找类
        private Replace rp;//替换类
        //得到系统字体数组
        private String []Font_list = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
 	//设置字体大小数组
        private String []FontSize_list={"8","9","10","12","14","16","20","22","24","26","28","36","40","50","72"};
    //定义的组件的顺序为从北到南
    //private JPopupMenu MouseMenu=new JPopupMenu();//鼠标右键菜单项
    private JMenuBar MenuBar=new JMenuBar();//主窗体的菜单栏;
    private JToolBar ToolBar=new JToolBar();//主窗体的工具栏
    private JToolBar FormatBar=new JToolBar();//主窗体的格式栏
    //标签游标没找到相关的组件,自己也不会做,所以略去;
    
    public static JTextArea TextArea=new JTextArea();//主窗体的文本区
    private JScrollPane jsp=new JScrollPane(TextArea);//可以拖动
    private JLabel StatusBar=new JLabel();//主窗体的状态栏
    /** Creates a new instance of MainFrame */
   
    String path;//文件路径,考虑到用的比较多,就定义成域;
      
    ///菜单栏
    private JMenu File_Menu=new JMenu("文件(F)");
    private JMenu Edit_Menu=new JMenu("编辑(E)");
    private JMenu View_Menu=new JMenu("查看(L)");
    private JMenu Insert_Menu=new JMenu("插入(I)");
    private JMenu Format_Menu=new JMenu("格式(O)");
    private JMenu Help_Menu=new JMenu("帮助(H)");
    private JMenu Face_Style_Menu=new JMenu("界面风格(R)");
    ///文件菜单栏
    private JMenuItem File_New=new JMenuItem("新建",'N');
    private JMenuItem File_Open=new JMenuItem("打开",'O');
    private JMenuItem File_Save=new JMenuItem("保存",'S');
    private JMenuItem File_SaveAs=new JMenuItem("另存为",'A');
 //  private JSeparator File_Sep=new JSeparator();
    private JMenuItem File_PageSet=new JMenuItem("页面设置",'O');
    private JMenuItem File_Print = new JMenuItem("打印(P)",'P');
    private JMenuItem File_Exit = new JMenuItem("退出(E)",'E');
    ///编辑菜单栏
     private JMenuItem Edit_Back=new JMenuItem("撤消(U)",'U');
    private JMenuItem Edit_Copy=new JMenuItem("复制(C)",'C');
    private JMenuItem Edit_Cut=new JMenuItem("剪切(T)",'T');
     private JMenuItem Edit_Paste=new JMenuItem("粘贴(V)",'V');
      private JMenuItem Edit_Del=new JMenuItem("删除(L)",'L');
        private JMenuItem Edit_SelectAll=new JMenuItem("全选(C)",'A');
       private JMenuItem Edit_Find=new JMenuItem("查找(C)",'F');
      
          private JMenuItem Edit_Replace=new JMenuItem("替换(C)",'H');
    
      ///查看菜单栏
        // private JMenuItem Edit_ReplaceNext=new JMenuItem("替换下一个(C)",'C');
        // private JCheckBoxMenuItem linewrap=new JCheckBoxMenuItem("自动换行(W)");

 	private JCheckBoxMenuItem Tool_Bar = new JCheckBoxMenuItem("工具栏(T)");
        private JCheckBoxMenuItem Format_Bar=new JCheckBoxMenuItem("格式栏(O)");
     	private JCheckBoxMenuItem Status_Bar = new JCheckBoxMenuItem("状态栏(S)");
        ///格式菜单栏
         private JCheckBoxMenuItem Format_NewLine=new JCheckBoxMenuItem("自动换行(W)");
        // private JMenuItem Format_Font = new JMenuItem("字体(F)");
       //  private JMenuItem Format_ForColor = new JMenuItem("字体颜色");
         private JMenuItem Format_Font=new JMenuItem("字体");
           private JMenuItem Format_Color=new JMenuItem("字体颜色");
         ///插入菜单栏
         private JMenuItem datetime = new JMenuItem("时间/日期(D)",'D');
             private JMenuItem duixiang = new JMenuItem("对象");
         ///帮助菜单栏
         private JMenuItem Help_AboutUs = new JMenuItem("关于记事本(A)",'A');
 	private JMenuItem Help_Name = new JMenuItem("帮助主题(H)",'H'); 
  
      
        ///工具栏条目细分每个图片,工具条编名规则是:属性+工具条姓名
        
      private JButton new_tool = new JButton(new ImageIcon("pic\\new.gif"));
 	private JButton open_tool = new JButton(new ImageIcon("pic/open.gif"));
 	private JButton save_tool = new JButton(new ImageIcon("pic/save.gif"));
 	private JButton print_tool = new JButton(new ImageIcon("pic/print.gif"));
 	private JButton cut_tool = new JButton(new ImageIcon("pic/cut.gif"));
 	private JButton copy_tool = new JButton(new ImageIcon("pic/copy.gif"));
 	private JButton paste_tool = new JButton(new ImageIcon("pic/paste.gif"));
          private JButton back_tool = new JButton(new ImageIcon("pic/back.gif"));
 	private JButton delete_tool = new JButton(new ImageIcon("pic/del.gif"));
 	private JButton find_tool = new JButton(new ImageIcon("pic/find.gif"));
 	//private JButton findnext_tool = new JButton(new ImageIcon("pic/findnext.gif"));
 	private JButton datetime_tool = new JButton(new ImageIcon("pic/datetime.gif"));
 	//private JButton repalcenext_tool = new JButton(new ImageIcon("pic/repalcenext.gif"));
        
      ///格式栏条目细分每个图片
       
        private JComboBox fontfamily_format=new JComboBox(Font_list);;
        private JComboBox fontsize_format=new JComboBox(FontSize_list);;
     	private JButton fontbold_format = new JButton(new ImageIcon("pic/bold.gif"));
 	private JButton fontitcal_format = new JButton(new ImageIcon("pic/itcal.gif"));
 	private JButton fontu_format= new JButton(new ImageIcon("pic/u.gif"));
 	private JButton forcolor_format = new JButton(new ImageIcon("pic/color.gif"));
        ///鼠标右键菜单栏目
       /* private JMenuItem Mouse_Back = new JMenuItem("撤消");
        private JMenuItem Mouse_Cut = new JMenuItem("剪切");
	private JMenuItem Mouse_Copy = new JMenuItem("复制");
	private JMenuItem Mouse_Paste = new JMenuItem("粘贴");
	private JMenuItem Mouse_Del = new JMenuItem("删除");
	private JMenuItem Mouse_Font=new JMenuItem("字体");
        private JMenuItem Mouse_Color=new JMenuItem("字体颜色");
	private JMenuItem Mouse_Find = new JMenuItem("查找");
	
	private JMenuItem Mouse_Replace = new JMenuItem("替换");

	private JMenuItem Mouse_SelectAll = new JMenuItem("全选");	
    */
    // </editor-fold>     

    // </editor-fold>     
// <editor-fold defaultstate="collapsed" desc=" 窗体布局和监听注册,快捷键的建立,鼠标右键,工具栏,格式栏,状态栏 ">   
//设置菜单栏
    void SetMenu()
    {
        setLayout(new BorderLayout());
        //菜单栏目的快捷键
      File_Menu.setMnemonic('F');
      Edit_Menu.setMnemonic('E');
      View_Menu.setMnemonic('L');
      Insert_Menu.setMnemonic('I');
      Format_Menu.setMnemonic('O');
      Help_Menu.setMnemonic('H');
      Face_Style_Menu.setMnemonic('R');
      //状态的快捷键
      Tool_Bar.setMnemonic('T');
      Status_Bar.setMnemonic('S');
      Format_Bar.setMnemonic('O');
      
      ///文件菜单类系统快捷键方式
      File_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
      File_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
      File_Save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
      File_Print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
      
      //编辑类系统快捷键方式
      Edit_Back.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
      Edit_Copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
      Edit_Cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
      Edit_Find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
    
      Edit_Paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
      Edit_Replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
      Edit_Del.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
      Edit_SelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

     
    
      
      ///设置不可用的按钮项,这些功能不好实现,就不写了
      ///添加菜单,大的添加是菜单栏目的添加,小的添加是每个菜单栏目子菜单的添加
//文件项

      MenuBar.add(logicev.makeMenu(File_Menu,new Object[]{File_New,File_Open,null,File_Save,File_SaveAs,
      null,File_PageSet,File_Print,null,File_Exit},this));
      //编辑项
      MenuBar.add(logicev.makeMenu(Edit_Menu,new Object[]{Edit_Back,null,Edit_Copy,Edit_Cut,Edit_Paste,null,Edit_Del,
      Edit_SelectAll,null,Edit_Find,Edit_Replace},this));
     //查看项
      MenuBar.add(logicev.makeMenu(View_Menu,new Object[]{Tool_Bar,Format_Bar,Status_Bar},this));
     //插入项
      MenuBar.add(logicev.makeMenu(Insert_Menu,new Object[]{datetime,null,duixiang},this));
      //格式项
     MenuBar.add(logicev.makeMenu(Format_Menu,new Object[]{Format_NewLine,null,Format_Font,Format_Color},this));
      //帮助项
     MenuBar.add(logicev.makeMenu(Help_Menu,new Object[]{Help_AboutUs,null,Help_Name},this));
    
      
    }
    //设置鼠标右键
   
    /*void SetMouse()
    {
        MouseMenu.add(Mouse_Back);
        MouseMenu.add(Mouse_Copy);
        MouseMenu.add(Mouse_Cut);
         MouseMenu.add(Mouse_Paste);
          MouseMenu.add(Mouse_Del);
          MouseMenu.addSeparator();
          //MouseMenu.add(Font_Format);
          //MouseMenu.add(C);
          MouseMenu.add(Mouse_Font);
             MouseMenu.add(Mouse_Color);
           MouseMenu.addSeparator();
        MouseMenu.add(Mouse_Find);
      
       
       
        MouseMenu.add(Mouse_Replace);
     
         MouseMenu.addSeparator();
        MouseMenu.add(Mouse_SelectAll);
        
         ///鼠标右键类系统快捷键方式
       Mouse_Back.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
      Mouse_Copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
      Mouse_Cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
      Mouse_Find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
    
      Mouse_Paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
      Mouse_Replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
      Mouse_Del.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
      Mouse_SelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
      
        
    }
     **/
    //设置工具栏和格式栏
    void SetBar()
    {
        ToolBar.setFloatable(true);
        ToolBar.setSize(20,JFrame.MAXIMIZED_VERT);
        ToolBar.addSeparator();
        ToolBar.add(new_tool);   new_tool.setToolTipText("新建");
        ToolBar.add(open_tool);   open_tool.setToolTipText("打开");
        ToolBar.add(save_tool);   save_tool.setToolTipText("保存");
         ToolBar.add(print_tool);   print_tool.setToolTipText("打印");
        ToolBar.add(cut_tool);   cut_tool.setToolTipText("剪切");
         ToolBar.add(copy_tool);   copy_tool.setToolTipText("复制");
        ToolBar.add(paste_tool);   paste_tool.setToolTipText("粘贴");
         ToolBar.add(back_tool);   back_tool.setToolTipText("撤消");
        ToolBar.add(delete_tool);   delete_tool.setToolTipText("删除");
           ToolBar.add(find_tool);   find_tool.setToolTipText("查找");
          //  ToolBar.add(findnext_tool);   findnext_tool.setToolTipText("查找下一个");
             ToolBar.add(datetime_tool);   datetime_tool.setToolTipText("日期时间");
            //  ToolBar.add(repalcenext_tool);   repalcenext_tool.setToolTipText("替换下一个");
           ///格式栏上的小图标快捷添加
             
              FormatBar.add(fontbold_format);  fontbold_format.setToolTipText("粗体");
              FormatBar.add(fontitcal_format); fontitcal_format.setToolTipText("斜体");
              FormatBar.add(fontu_format);  fontu_format.setToolTipText("下划线");
              FormatBar.add(forcolor_format);  forcolor_format.setToolTipText("字体颜色");
                  FormatBar.add(fontfamily_format);
              FormatBar.add(fontsize_format);     
        
    }
    //添加按钮的监听事件
    void SetEventListen()
    {
      /*  File_New.addActionListener(this);
        File_Open.addActionListener(this);
        File_Save.addActionListener(this);
        File_SaveAs.addActionListener(this);
        File_Print.addActionListener(this);
        File_Exit.addActionListener(this);
        
        //编辑类
        Edit_Back.addActionListener(this);
        Edit_Copy.addActionListener(this);
        Edit_Cut.addActionListener(this);
        Edit_Paste.addActionListener(this);
        Edit_Del.addActionListener(this);
        Edit_SelectAll.addActionListener(this);
        Edit_Find.addActionListener(this);
    
        Edit_Replace.addActionListener(this);

        
        //查看菜单
        Tool_Bar.addActionListener(this);
        Format_Bar.addActionListener(this);
        Status_Bar.addActionListener(this);
        
        //格式菜单
        Format_NewLine.addActionListener(this);
        Format_Font.addActionListener(this);
        Format_Color.addActionListener(this);
        
        //插入菜单
        datetime.addActionListener(this);
        duixiang.addActionListener(this);
        
        //帮助菜单
        Help_AboutUs.addActionListener(this);
        Help_Name.addActionListener(this);
            **/
       
        //工具栏
        new_tool.addActionListener(this);
        open_tool.addActionListener(this);
        save_tool.addActionListener(this);
        print_tool.addActionListener(this);
        cut_tool.addActionListener(this);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -