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

📄 11232044292.java

📁 java记事本
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/**
 *by pawpaw
 *06/09/29
 *文本编辑器
 **/
 
 package Text_editorPackage;
 
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*; 
 import javax.swing.text.*;
 import javax.swing.filechooser.*;
 import javax.swing.Popup;
 import java.io.*;
 import java.util.*; 
 
 
 class text_editor extends JFrame implements ActionListener{
 	private File file =  null;
 	private JTextArea textArea = new JTextArea();     //文本区
  	private JScrollPane jsp=new JScrollPane(textArea);//可以拖动
  	private JPopupMenu popupMenu = new JPopupMenu();//弹出菜单模板
  	private JToolBar toolbar = new JToolBar(); //工具栏
  	private JLabel statubar = new JLabel("我的记事本");//状态栏
  	private JTextField findtxt,repltxt; //find为查找对话框的输入文本区,replace对话框的输入文本区
  	static private final String newline = "\n";//回车
  	Dialog findDialog,replaceDialog; //find为查找对话框,replace对话框
  	JButton findenter,replb; //find为查找对话框,replace对话框的确定按钮
  	JButton cancel1,cancel2;//find,replace对话框中的取消按钮
  	JButton FindNextItem,SwapNextItem;
  	String path;//文件路径
  	String str,strnext;
  	int startp,endp,nexttemp,newstartp,newendp; //查找替换时所用的临时变量
 	/////// 菜单栏
 	private JMenuBar mBar = new JMenuBar();
 	private JMenu fileMenu = new JMenu("文件(F)");
 	private JMenu editorMenu = new JMenu("编辑(E)");
 	private JMenu formatMenu = new JMenu("格式(O)");
 	private JMenu lookoverMenu = new JMenu("查看(V)");
 	private JMenu helpMenu = new JMenu("帮助(H)");
 	private JMenu interface_styleMenu = new JMenu("界面风格(I)");
 	///////编辑子菜单
 	private JMenuItem editCopy = new JMenuItem("复制(C)",'C');
 	private JMenuItem editCut = new JMenuItem("剪切(T)",'T');
 	private JMenuItem editPaste = new JMenuItem("粘贴(P)",'P');
 	private JMenuItem editDelete = new JMenuItem("删除(L)",'L');
 	private JMenuItem editUndo = new JMenuItem("撤消(U)",'U');
 	private JMenuItem editFind = new JMenuItem("查找(F)",'F');
 	private JMenuItem editFindNext = new JMenuItem("查找下一个(N)",'N');
 	private JMenuItem editSwap = new JMenuItem("替换(R)",'R');
 	private JMenuItem editSwapNext = new JMenuItem("替换下一个(S)",'S');
 	private JMenuItem editSelectAll = new JMenuItem("全选(A)",'A');
 	private JMenuItem datetime = new JMenuItem("时间/日期(D)",'D');
 	///////右键点击子菜单
 	private JMenuItem peditCut = new JMenuItem("剪切");
	private JMenuItem peditCopy = new JMenuItem("复制");
	private JMenuItem peditPaste = new JMenuItem("粘贴");
	private JMenuItem peditDelete = new JMenuItem("删除");
	private JMenuItem peditUndo = new JMenuItem("撤消");
	private JMenuItem peditFind = new JMenuItem("查找");
	private JMenuItem peditFindNext = new JMenuItem("查找下一个");
	private JMenuItem peditSwap = new JMenuItem("替换");
	private JMenuItem peditSwapNext = new JMenuItem("替换下一个");
	private JMenuItem peditSelectAll = new JMenuItem("全选");	
	///////文件子菜单
 	private JMenuItem newfile = new JMenuItem("新建(N)",'N');
 	private JMenuItem openItem = new JMenuItem("打开(O)",'O');
 	private JMenuItem saveItem = new JMenuItem("保存(S)",'S');
 	private JMenuItem saveAsItem = new JMenuItem("另存为(A)",'A');
 	private JMenuItem pageset = new JMenuItem("页面设置(U)",'U');
 	private JMenuItem mimeograph = new JMenuItem("打印(P)",'P');
 	private JMenuItem exit = new JMenuItem("退出(E)",'E');
 	/////// 帮助子菜单
 	private JMenuItem about_us = new JMenuItem("关于记事本(A)",'A');
 	private JMenuItem help_name = new JMenuItem("帮助主题(H)",'H'); 
 	/////// 界面风格子菜单
 	private JMenuItem Motif = new JMenuItem("MOTIF风格");
 	private JMenuItem Local = new JMenuItem("默认风格");
 	private JMenuItem Metal = new JMenuItem("METAL风格");	 
 	///////选择菜单
 	private JCheckBoxMenuItem linewrap=new JCheckBoxMenuItem("自动换行(W)");
 	private JCheckBoxMenuItem status_bar = new JCheckBoxMenuItem("状态栏(S)");
 	private JCheckBoxMenuItem tool = new JCheckBoxMenuItem("工具栏(T)");
 	///////添加工具栏菜单
 	private JButton new_tool = new JButton(new ImageIcon("pic/new.jpg"));
 	private JButton open_tool = new JButton(new ImageIcon("pic/open.gif"));
 	private JButton save_tool = new JButton(new ImageIcon("pic/save.gif"));
 	private JButton save_as_tool = new JButton(new ImageIcon("pic/saveas.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 delete_tool = new JButton(new ImageIcon("pic/del.gif"));
 	private JButton font_tool = new JButton(new ImageIcon("pic/font.gif"));
 	private JButton color_tool = new JButton(new ImageIcon("pic/color.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 repalce_tool = new JButton(new ImageIcon("pic/repalce.gif"));
 	private JButton repalcenext_tool = new JButton(new ImageIcon("pic/repalcenext.gif"));
 	///////字体
 	private JMenuItem fontcolor = new JMenuItem("字体颜色");
 	private JMenuItem pedit_fontcolor = new JMenuItem("字体颜色");
 	private JMenuItem edit_font = new JMenuItem("字体(F)",'F');
 	private JMenuItem pedit_font = new JMenuItem("字体");
 	private Font textfont=new Font("宋体",0,20);
 	///////其它
 	private boolean checksave = false;//判断是否保存
 	///////鼠标监听
 	private class Mouselistener extends MouseAdapter{
		public void mousePressed(MouseEvent evt){
			if(evt.getModifiers()==MouseEvent.BUTTON3_MASK){
				popupMenu.show(evt.getComponent(),evt.getX(),evt.getY());
				//popupMenu.setBackground(Color.orange);
				}
		    }
		public void mouseReleased(MouseEvent m){
			Get_XY();
		}	    
	}
	//////键盘监听
    private  class Keylistener extends KeyAdapter{
	    public void keyReleased(KeyEvent k){
		     Get_XY();
        }
	}
	
	private class WindowCloser extends WindowAdapter{//退出事件
 		public void windowClosing(WindowEvent we)
 		{ System.exit(0); }
 	}
	
 	///////主构造函数
 	public text_editor(){
 		super("新建文本文档----记事本"); 
 		textArea.addMouseListener(new Mouselistener());
 		setupMenu();		
 		setupFrame(); 	
		/*textArea.addMouseListener(new MouseAdapter(){
 		public void mouseReleased(MouseEvent evt){
 			if(evt.isPopupTrigger())
 			   popupMenu.show(evt.getComponent(),evt.getX(),evt.getY());
 		}
 	});*/
   }
 	///////构造菜单///工具条///弹出菜单///等...
 	void setupMenu(){
 		
        setLayout(new BorderLayout());////设置布局
        
 		//设置快捷键 		
 		fileMenu.setMnemonic('F');
 		editorMenu.setMnemonic('E');
 		formatMenu.setMnemonic('O');
 		lookoverMenu.setMnemonic('V');
 		helpMenu.setMnemonic('H');
 		interface_styleMenu.setMnemonic('I');
 		linewrap.setMnemonic('W');
 		status_bar.setMnemonic('S');
 		tool.setMnemonic('T');
 	
 		newfile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
 		openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
		saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
		mimeograph.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
		
		editCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
		editCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
		editPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));
		editUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK));
		editFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK));
		editFindNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
		editSwap.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK));
		editDelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
        editSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
        datetime.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
		peditUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK));
		peditCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
		peditCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
		peditPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));
 		peditDelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
 		peditSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
 		
 	    //设置是否可见
 		newfile.setEnabled(true);
 		editUndo.setEnabled(false);
 		help_name.setEnabled(false);
 		status_bar.setEnabled(true);
 		pageset.setEnabled(false);
 		mimeograph.setEnabled(false);
 		statubar.setVisible(false);
 		toolbar.setVisible(false);
 		editFindNext.setEnabled(false);
 		
 	    //添加菜单 	
 		mBar.add(makeMenu(fileMenu,new Object [] {
 			newfile , openItem,null,saveItem,saveAsItem,null,pageset,mimeograph,null,exit
 		},this));
 		mBar.add(makeMenu(editorMenu,new Object [] {
 			editUndo,null,editCut,editCopy,editPaste,editDelete,null,editFind,editFindNext,editSwap,editSwapNext,"转到",null,editSelectAll,datetime},
 			this));
 		mBar.add(makeMenu(formatMenu,new Object [] {
 			linewrap,null,edit_font,fontcolor},this));
 		mBar.add(makeMenu(lookoverMenu,new Object [] {
 			status_bar,null,tool},this));
 	    mBar.add(makeMenu(helpMenu,new Object [] {
 	    	help_name,null,about_us},this));
 	    mBar.add(makeMenu(interface_styleMenu,new Object [] {
 	    	Local,Motif,Metal},this));
 		
 		//添加右键弹出菜单 		
 		/*popupMenu.add(makePopupMenu(new Object []{
 			peditUndo,null,peditCopy,peditPaste,peditDelete,peditCut,null,"字体",null,"全选",null,"从右到左阅读"
 		},this));*/
 		popupMenu.add(peditUndo);	peditUndo.setEnabled(false);
		popupMenu.add(peditCut);	peditCut.setEnabled(true);
		popupMenu.add(peditCopy);	peditCopy.setEnabled(true);
		popupMenu.add(peditPaste);	peditPaste.setEnabled(true);
		popupMenu.add(peditDelete); peditDelete.setEnabled(true);
		popupMenu.addSeparator();
		popupMenu.add(pedit_font);
		popupMenu.add(pedit_fontcolor);
		popupMenu.addSeparator();
		popupMenu.add(peditFind);
		popupMenu.add(peditFindNext);
		popupMenu.add(peditSwap);
		popupMenu.add(peditSwapNext);
		popupMenu.addSeparator();
		popupMenu.add(peditSelectAll);
		popupMenu.addSeparator();
		popupMenu.add("从右到左阅读");
		////////弹出菜单监听事件
		datetime.addActionListener(this);
		peditUndo.addActionListener(this);
     	peditDelete.addActionListener(this);
     	peditCopy.addActionListener(this);
     	peditCut.addActionListener(this);
     	peditPaste.addActionListener(this);
     	peditFind.addActionListener(this);
     	peditFindNext.addActionListener(this);
     	peditSwap.addActionListener(this);
     	peditSwapNext.addActionListener(this);
     	peditSelectAll.addActionListener(this);
     	pedit_font.addActionListener(this);
     	pedit_fontcolor.addActionListener(this);
     	        
        //添加工具栏
        toolbar.setFloatable(true);//设置为可移动
        toolbar.setSize(40,JFrame.MAXIMIZED_VERT);
        toolbar.addSeparator();
        toolbar.add(new_tool); new_tool.setToolTipText("新建");
        new_tool.addActionListener(this);
        toolbar.add(open_tool); open_tool.setToolTipText("打开");
        open_tool.addActionListener(this);
        toolbar.add(save_tool); save_tool.setToolTipText("保存");
        save_tool.addActionListener(this);
        toolbar.add(save_as_tool); save_as_tool.setToolTipText("另存");
        save_as_tool.addActionListener(this);
        toolbar.addSeparator();
        toolbar.add(copy_tool); copy_tool.setToolTipText("复制");
        copy_tool.addActionListener(this);
        toolbar.add(cut_tool); cut_tool.setToolTipText("剪切");
        cut_tool.addActionListener(this);
        toolbar.add(paste_tool); paste_tool.setToolTipText("粘贴");
        paste_tool.addActionListener(this);
        toolbar.add(delete_tool); delete_tool.setToolTipText("删除");
        delete_tool.addActionListener(this);
        toolbar.addSeparator();
        toolbar.add(find_tool);find_tool.setToolTipText("查找");
        find_tool.addActionListener(this);
        toolbar.add(findnext_tool);findnext_tool.setToolTipText("查找下一个");
        findnext_tool.addActionListener(this);
        toolbar.add(repalce_tool);repalce_tool.setToolTipText("替换");
        repalce_tool.addActionListener(this);
        toolbar.add(repalcenext_tool);repalcenext_tool.setToolTipText("替换下一个");
        repalcenext_tool.addActionListener(this);
        toolbar.addSeparator();
        toolbar.add(font_tool);font_tool.setToolTipText("字体");
        font_tool.addActionListener(this);
        toolbar.add(color_tool);color_tool.setToolTipText("颜色");
        color_tool.addActionListener(this);  
        
        //添加查找,替换中的按钮
        findenter = new JButton("确定");
        findenter.addActionListener(this); //声明对话框中上确定按钮,并注册事件
        replb = new JButton("确定");
        replb.addActionListener(this);
        cancel1 = new JButton("取消");
        cancel1.addActionListener(this);
        cancel2 = new JButton("取消");
        cancel2.addActionListener(this);
        FindNextItem = new JButton("查找下一个");
        FindNextItem.addActionListener(this);
        SwapNextItem = new JButton("替换下一个");
        SwapNextItem.addActionListener(this);   
 	}
 	
 	void setupFrame(){
		//设置窗体风格
		/*com.sun.java.swing.plaf.windows.WindowsLookAndFeel------指定Windows
		外观,目前只能用于微软的windows系统。
		* com.sun.java.swing.plaf.motif.MotifLookAndFeel------指定CDE/MOtif外
		观,该外观可用于任何平台
		* javax.swing.plaf.metal.MetalLookAndFeel------指定Java外观(其代码名为
		Metal)*/
		String windows="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
		String motif="com.sun.java.swing.plaf.motif.MotifLookAndFeel";
		String metal="javax.swing.plaf.metal.MetalLookAndFeel";
		/*因调用 setLookAndFeel 方法时,可能会由于所指定的外观无效或不能装载而导
		 致失败.故用 try-catch 捕获异常*/
		try
		{
			UIManager.setLookAndFeel(windows);
			SwingUtilities.updateComponentTreeUI(this);
		}
		catch(Exception e)
		{
			System.out.println("不能设置这个风格"+e);
		}
		
		//设置文本域属性
		textArea.setFont(new Font("宋体",0,17));
		textArea.setSelectedTextColor(Color.blue);

⌨️ 快捷键说明

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