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

📄 jishiben.java

📁 程序人员在编程过程中如果遇到相关问题可以来这里进行参考
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * JiShiBen.java
 *
 * Created on 2007年12月23日, 下午2:51
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package jishiben;

/**
 *
 * @author Administrator
 */
import java.awt.font.TextAttribute;
import java.text.AttributedString;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.text.Document;
import javax.swing.event.*;
import javax.swing.event.DocumentListener;
import javax.swing.text.StyleConstants;
import javax.swing.undo.*; 
import java.util.*;
import java.text.SimpleDateFormat;
 
public class JiShiBen extends JFrame implements ActionListener
{  
    private JFileChooser fileChooser = new JFileChooser();//文件选择对话框
    private File fileName;
     private JColorChooser  color=new JColorChooser();
    private JMenuBar m_MenuBar;//定义菜单栏
    private JMenu menuFile,menuEdit,geShi,m_Edit_Paste,menuInsert,menuLook,menuApp;//定义菜单项
    private JMenuItem mi_File_New,mi_File_Open,mi_File_Save,mi_File_LSave,mi_File_Exit,mi_Edit_Copy,mi_Edit_Cut;//定义菜单子项
    private JMenuItem pi_New,pi_Del,pi_Pro,pi_Copy,pi_Cut,pi_Paste,pi_selectAll;   //弹出窗口子项(新建/删除/属性)
    private JMenuItem pasteItem,undoItem,redoItem,selectAll,findItem,replaceItem,findNextItem; //m_Edit_Paste菜单子项
    private JMenuItem foreColor,backColor,metal,motif,windows;
     private JMenuItem dateTime;//插入菜单子项
     private JMenuItem numItem;//查看菜单子项
    private JButton newBtn,openBtn,saveBtn,cutBtn,copyBtn,pasteBtn,undoBtn,redoBtn;
   private JTextArea text ;
    private Color color2;
    private Color color1;
   private JLabel  statusBar ;//状态栏对象
   private JPanel  tools;
   private JLabel time=new JLabel("日期时间   "); 
  private JTextField time1=new JTextField(18);
   private String placeHolder="";
   private  String font;
    private  int m,num; 
    private boolean isChange = false;// 检测文档变化
   Document document;
   String[] items={"宋体","楷体","隶书","魏碑","黑体"};
  String[] a={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"};
   private JComboBox comFont;
   private JComboBox comSize;
UndoManager undo=new UndoManager();   
 UndoableEditListener ue=new UndoHander(); 
   private JCheckBox bold,italic;
    public JiShiBen()
    {
        super("小小记事本");//设置当前容器标题
      time.setForeground(Color.RED);
        time1.setForeground(Color.BLUE);
           m_MenuBar=new JMenuBar(); //创建菜单条
        this.setJMenuBar(m_MenuBar);//把菜单条加入整个JFrame容器
       //创建文件及其子菜单
       menuFile=new JMenu("文件(F)");//创建文件菜单项,
       menuFile.setMnemonic('F');//设置菜单子项的快捷键
       mi_File_New=new JMenuItem("   新建",new ImageIcon("images/new.gif"));//创建菜单子项并指定快捷键
       KeyStroke ks= KeyStroke.getKeyStroke(
   KeyEvent.VK_N,InputEvent.CTRL_MASK);
   mi_File_New.setAccelerator(ks);
       mi_File_Open=new JMenuItem("   打开",new ImageIcon("images/open.gif"));//创建菜单子项并指定快捷键
       KeyStroke ko= KeyStroke.getKeyStroke(
   KeyEvent.VK_O,InputEvent.CTRL_MASK);
     mi_File_Open.setAccelerator(ko);
       mi_File_Save=new JMenuItem("   保存",new ImageIcon("images/save.gif"));
       KeyStroke kb= KeyStroke.getKeyStroke(
   KeyEvent.VK_S,InputEvent.CTRL_MASK);
   mi_File_Save.setAccelerator(kb);
        mi_File_LSave=new JMenuItem("   另存为",new ImageIcon("images/SaveAs.gif"));
        menuFile.addSeparator();
       mi_File_Exit=new JMenuItem("   退出(x)",new ImageIcon("images/exit.gif"));
       mi_File_Exit.setMnemonic('x');//设置菜单子项的快捷键
       mi_File_Open.setActionCommand("打开");//再设置命令名
       mi_File_Exit.setActionCommand("退出");//以便动作响应程序调用
       
       menuFile.add(mi_File_New);//把菜单子项加入菜单项
       menuFile.add(mi_File_Open);//把菜单子项加入菜单项
       menuFile.add(mi_File_Save);//把菜单子项加入菜单项
       menuFile.add(mi_File_LSave);
       menuFile.addSeparator();//加一条横向分割线
       menuFile.add(mi_File_Exit);
        m_MenuBar.add(menuFile);//将菜单项加入菜单栏

      //创建编辑菜单项,创建菜单子项并指定快捷键
      menuEdit=new JMenu("编辑(E)");//创建菜单项,创建菜单子项并指定快捷键
       menuEdit.setMnemonic('E');
       mi_Edit_Copy=new JMenuItem("   复制",new ImageIcon("images/copy.gif"));
       KeyStroke kc= KeyStroke.getKeyStroke(
   KeyEvent.VK_C,InputEvent.CTRL_MASK);
   mi_Edit_Copy.setAccelerator(kc);
       mi_Edit_Cut=new JMenuItem("   剪切",new ImageIcon("images/cut.gif"));//创建选择菜单子项
       KeyStroke kx= KeyStroke.getKeyStroke(
   KeyEvent.VK_X,InputEvent.CTRL_MASK);
   mi_Edit_Cut.setAccelerator(kx);
       pasteItem=new JMenuItem("   粘贴",new ImageIcon("images/paste.gif"));//创建二级菜单项
       KeyStroke kv= KeyStroke.getKeyStroke(
   KeyEvent.VK_V,InputEvent.CTRL_MASK);
   pasteItem.setAccelerator(kv);
            undoItem=new JMenuItem("   撤消",new ImageIcon("images/undo.gif"));
       KeyStroke kz= KeyStroke.getKeyStroke(
   KeyEvent.VK_Z,InputEvent.CTRL_MASK);
   undoItem.setAccelerator(kz);
       redoItem=new JMenuItem("   重做",new ImageIcon("images/redo.gif"));
       KeyStroke ky= KeyStroke.getKeyStroke(
   KeyEvent.VK_Y,InputEvent.CTRL_MASK);
  redoItem.setAccelerator(ky);
       selectAll=new JMenuItem("   全选",new ImageIcon("images/selectall.gif."));
       KeyStroke kf= KeyStroke.getKeyStroke(
   KeyEvent.VK_F,InputEvent.CTRL_MASK);
   selectAll.setAccelerator(kf);
       findItem=new JMenuItem("   查找",new ImageIcon("images/search.gif."));
       KeyStroke ka= KeyStroke.getKeyStroke(
   KeyEvent.VK_A,InputEvent.CTRL_MASK);
   findItem.setAccelerator(ka);
       replaceItem=new JMenuItem("替换");
       findNextItem=new JMenuItem("查找下一个");
       menuEdit.add(undoItem);
       menuEdit.add(redoItem);
       menuEdit.add(mi_Edit_Copy);
       menuEdit.add(mi_Edit_Cut);
       menuEdit.addSeparator();
       menuEdit.add(pasteItem);//把二级菜单加入菜单项
        menuEdit.addSeparator();
        menuEdit.add(selectAll);
         menuEdit.addSeparator();
         menuEdit.add(findItem);
          menuEdit.add(replaceItem);
           menuEdit.add(findNextItem);
       m_MenuBar.add(menuEdit);
       //创建格式菜单
       geShi=new JMenu("格式(G)");
       menuApp=new JMenu("外观");
        geShi.setMnemonic('G');//设置菜单子项的快捷键
         foreColor=new JMenuItem("字体颜色");
         backColor=new JMenuItem("背景颜色");
         metal=new JMenuItem("Metal风格");
           motif=new JMenuItem("Motif风格");
             windows=new JMenuItem("Windows风格");
             menuApp.add(metal);
              menuApp.add(motif);
               menuApp.add(windows);
         geShi.add(foreColor);
          geShi.add(backColor);
          geShi.add(menuApp);
          m_MenuBar.add(geShi);//将菜单项加入菜单栏
     //创建插入菜单
          menuInsert=new JMenu("插入(I)");
           menuInsert.setMnemonic('I');
           dateTime=new JMenuItem("插入日期");     
           menuInsert.add(dateTime);            
           m_MenuBar.add(menuInsert);
           //创建查看菜单
           menuLook=new JMenu("查看(V)");
            menuLook.setMnemonic('V');
             numItem=new JMenuItem("统计字数");
             menuLook.add(numItem);
               m_MenuBar.add(menuLook);
       //创建弹出窗口
       final JPopupMenu popM=new JPopupMenu();//创建弹出窗口
      pi_New=new JMenuItem("   新建",new ImageIcon("images/new.gif"));//为弹出窗口创建菜单子项
     pi_Copy=new JMenuItem("   复制",new ImageIcon("images/copy.gif"));
      pi_Cut=new JMenuItem("   剪切",new ImageIcon("images/cut.gif"));
       pi_Paste=new JMenuItem("   粘帖",new ImageIcon("images/paste.gif"));
       pi_selectAll=new JMenuItem("   全选",new ImageIcon("images/selectall.gif."));
      popM.add(pi_New);//为弹出菜单加入菜单子项
        popM.add(pi_Copy);
         popM.add(pi_Cut);
          popM.add(pi_Paste);
          popM.add(pi_selectAll);
       pi_Del=new JMenuItem("   删除",new ImageIcon("images/cancel.gif."));
         popM.add(pi_Del);
       pi_Pro=new JMenuItem("   属性",new ImageIcon("images/shuxing.gif."));
       popM.add(pi_Pro);
      
 //将菜单子项注册给监听器
 
  //测试用的方法
 MenuItemEventHandler menuItemHandler = new MenuItemEventHandler();
       mi_File_New.addActionListener(menuItemHandler);//使菜单子项响应动作事件
       mi_File_Open.addActionListener(menuItemHandler);//使菜单子项响应动作事件
       mi_File_Save.addActionListener(menuItemHandler);//使菜单子项响应动作事件
       mi_File_LSave.addActionListener(menuItemHandler);//使菜单子项响应动作事件
       mi_File_Exit.addActionListener(menuItemHandler);//使菜单子项响应动作事件 
       mi_Edit_Cut.addActionListener(menuItemHandler);
       mi_Edit_Copy.addActionListener(menuItemHandler);
       pasteItem.addActionListener(menuItemHandler);
       //mi_Paste_All.addActionListener(menuItemHandler);
       foreColor.addActionListener(menuItemHandler);
        backColor.addActionListener(menuItemHandler);
        metal.addActionListener(menuItemHandler);
         motif.addActionListener(menuItemHandler);
          windows.addActionListener(menuItemHandler);
       pi_Del.addActionListener(menuItemHandler);
       pi_Pro.addActionListener(menuItemHandler);
       pi_New.addActionListener(menuItemHandler);//使菜单子项响应动作事件
        pi_Copy.addActionListener(menuItemHandler);
         pi_Cut.addActionListener(menuItemHandler);
          pi_Paste.addActionListener(menuItemHandler);
          pi_selectAll.addActionListener(menuItemHandler);
      selectAll.addActionListener(menuItemHandler);
      dateTime.addActionListener(menuItemHandler);
     numItem.addActionListener(menuItemHandler);
  undoItem.addActionListener(menuItemHandler);
 redoItem.addActionListener(menuItemHandler);
     
    
  findItem.addActionListener(menuItemHandler);
 findNextItem.addActionListener(menuItemHandler);
 replaceItem.addActionListener(menuItemHandler);
 //goToLineItem.addActionListener(menuItemHandler);
/// selectAllItem.addActionListener(menuItemHandler);
 //timeItem.addActionListener(menuItemHandler);
 //autoNextLineItem.addActionListener(menuItemHandler);
 //fontItem.addActionListener(menuItemHandler);
// helpItem.addActionListener(menuItemHandler);
// aboutItem.addActionListener(menuItemHandler);

 
 
       //创建文本区域和状态条
        Container c=getContentPane();
        c.setLayout(new BorderLayout());
        statusBar=new JLabel("状态提示:");//状态栏对象
        text = new JTextArea();//创建文本区域
            text.setLineWrap(true);//自动换行
        c.add(new JScrollPane(text),BorderLayout.CENTER);
        c.add(statusBar,BorderLayout.SOUTH);
         //字体字号组合框
       comFont=new JComboBox(items);
      comFont.setSelectedItem("宋体");
      font="宋体";      
      comSize=new JComboBox(a);
      comSize.setSelectedItem("16");
       m=16; 
         
    comFont.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
       font=(String)comFont.getSelectedItem();
        text.setFont(new Font(font,Font.PLAIN,m));
      }
    });	
    //字号组合框
     
    comSize.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
      m=comSize.getSelectedIndex();
        text.setFont(new Font(font,Font.PLAIN,m));
      }
    });	
    //粗体斜体设置
  bold=new JCheckBox("粗体");
    italic=new JCheckBox("斜体");
    CheckBoxListener listener=new CheckBoxListener();
    bold.addItemListener(listener);
    italic.addItemListener(listener);
    
       //监听鼠标事件,弹出快捷菜单
        text.addMouseListener(new MouseAdapter(){
       	public void mouseReleased(MouseEvent e){
       		if(e.isPopupTrigger()){
       			popM.show(text,e.getX(),e.getY());
       		}
       	}
       	
        });
    text.getDocument().addUndoableEditListener(ue);         
    //创建工具栏按钮并注册给监听者
     ImageIcon newIcon=new ImageIcon("images/new.gif");
     newBtn=new JButton(newIcon);
     openBtn=new JButton(new ImageIcon("images/open.gif"));
     saveBtn=new JButton(new ImageIcon("images/save.gif"));
     undoBtn=new JButton(new ImageIcon("images/undo.gif"));
    redoBtn=new JButton( new ImageIcon("images/redo.gif"));
   // numBtn=new JButton("统计字数");
//     lineBtn=new JButton( new ImageIcon("images/underline.gif"));
    //创建"常用工具"工具栏
     JToolBar toolBar=new JToolBar("常用工具",SwingConstants.HORIZONTAL);
     newBtn.setToolTipText("新建文件");
     openBtn.setToolTipText("打开文件");
     saveBtn.setToolTipText("保存文件");
     undoBtn.setToolTipText("撤消");
     redoBtn.setToolTipText("重做");
    // lineBtn.setToolTipText("添加下划线");
     toolBar.add(newBtn);
     toolBar.add(saveBtn);
      toolBar.add(openBtn);
      toolBar.addSeparator();
      //创建"编辑工具"工具栏
     JToolBar toolBar1=new JToolBar("编辑工具",SwingConstants.HORIZONTAL);
     cutBtn=new JButton(new ImageIcon("images/cut.gif"));
     cutBtn.setToolTipText("剪切");
     toolBar1.add(cutBtn);

⌨️ 快捷键说明

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