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

📄 multipageeditor.java

📁 多页文本编辑器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * MultiPageEditor.java
 *
 * Created on 2007年10月22日, 上午11:22
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package multipageeditor;

/**
 *
 * @author linda
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension.*;
import java.io.*;
import java.awt.BorderLayout;
import java.util.*;

public class MultiPageEditor extends JFrame {
        
	JMenuBar jMenuBar1 = new JMenuBar();//菜单栏
	JMenu mnuFile = new JMenu();//“文件”菜单
	JMenuItem mnuNew = new JMenuItem();
	JMenuItem mnuOpen = new JMenuItem();
	JMenuItem mnuCloseCurrentTabPage = new JMenuItem();           
        JMenuItem mnuCloseAll = new JMenuItem();     
	JMenuItem mnuSave = new JMenuItem();
	JMenuItem mnuSaveAll = new JMenuItem();        
	JMenuItem mnuSaveAs = new JMenuItem();
	JMenuItem mnuExit = new JMenuItem(); 
        
	JMenu mnuEdit = new JMenu();//“编辑”菜单
	JMenuItem mnuUndo = new JMenuItem();
	JMenuItem mnuRedo = new JMenuItem();
	JMenuItem mnuCut = new JMenuItem();
	JMenuItem mnuCopy = new JMenuItem();
	JMenuItem mnuPaste = new JMenuItem();
	JMenuItem mnuSelectAll = new JMenuItem();
	JMenuItem mnuClear = new JMenuItem();
        
	JMenu mnuStyle = new JMenu();//“格式”菜单
	JMenuItem mnuFont = new JMenuItem();
	JMenuItem mnuFontColor = new JMenuItem();
	JMenuItem mnuBackColor = new JMenuItem();
        
        JMenu mnuInsert = new JMenu();//“插入”菜单
	JMenuItem mnuInsertDateTime = new JMenuItem();
        
	JMenu mnuLook = new JMenu();//“查看”菜单
	JCheckBoxMenuItem mnuStatus = new JCheckBoxMenuItem();
	JMenu mnuLookAndFeel = new JMenu();
	JMenuItem mnuMetal = new JMenuItem();
	JMenuItem mnuCDE = new JMenuItem();
	JMenuItem mnuWindowsXP = new JMenuItem();
	JMenuItem mnuWindowsClass = new JMenuItem();

        JMenu mnuHelp = new JMenu();//“帮助”菜单
	JMenuItem mnuAbout = new JMenuItem();
                
	JToolBar jToolBar1 = new JToolBar();//工具栏
	JButton btnNew = new JButton();	
        JButton btnOpen = new JButton();
	JButton btnSave = new JButton();       
	JButton btnCut = new JButton();
	JButton btnCopy = new JButton();
	JButton btnPaste = new JButton();
	JButton btnUndo = new JButton();
	JButton btnRedo = new JButton();
	JButton btnCloseCurrentTabPage = new JButton();
	JButton btnFont = new JButton(); 
	JButton btnFontColor = new JButton();        
	JButton btnDateTime = new JButton();
	JButton btnAbout = new JButton();

	JLabel lblStatus = new JLabel();
	JTabbedPane TabControl = new JTabbedPane();         

	public MultiPageEditor(){//构造方法
		try {			
			mainFrameInit();//主窗口初始化
			lblStatus.setText("正在初始化图标.....");
			initIcon();//初始化图标
			lblStatus.setText("正在初始化Tab编辑页");
			initPage();//初始化Tab编辑页
			this.setSize(800, 600);
			this.setLocationByPlatform(true);
			this.setVisible(true);//显示主窗口
			lblStatus.setText("准备就绪");
		} 
                catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void initPage() {//初始化Tab编辑页
		if (strFile != null) {//有参数时打开指定文件
			try {
				File file = new File(strFile);
				Open(strFile, file.getName());
			} 
                        catch (Exception ex) {
				System.out.println(ex.toString());
			}
		} 
                else {//无参数时创建新的Tab编辑页
			NewPage();
		}
	}
	
	ActionListener item_Click=new ActionListener() {
		public void actionPerformed(ActionEvent event) {
			String filename=((JMenuItem)event.getSource()).getText();
			File file=new File(filename);
			if(file.exists()) {
				Open(filename,file.getName());
				setTabPage();
			}
		}
	};

	//设置图标
	private void initIcon() {
		this.mnuAbout.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/About.png")));
		this.mnuNew.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/New.png")));
		this.mnuOpen.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Open.png")));
		this.mnuSave.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Save.png")));
		this.mnuSaveAll.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/SaveAll.png")));               
		this.mnuUndo.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Undo.png")));
		this.mnuRedo.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Redo.png")));
		this.mnuCut.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Cut.png")));
		this.mnuCopy.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Copy.png")));
		this.mnuPaste.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Paste.png")));
		this.mnuClear.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Delete.png")));
		this.mnuFont.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Font.png")));
		this.mnuFontColor.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/FontColor.png")));
		this.mnuBackColor.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/BackColor.png")));
		this.mnuCloseCurrentTabPage.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/ClosedSelectdPage.gif")));
		this.mnuCloseAll.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/ClosedAll.gif")));
		this.mnuExit.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Exit.gif")));
		this.mnuInsertDateTime.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/InsertDate.png")));
		this.btnNew.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/NewL.png")));
		this.btnOpen.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/OpenL.png")));
		this.btnSave.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/SaveL.png")));
		this.btnCut.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/CutL.png")));
		this.btnCopy.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/CopyL.png")));
		this.btnPaste.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/PasteL.png")));
		this.btnUndo.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/UndoL.png")));
		this.btnRedo.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/RedoL.png")));
		this.btnFont.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/Font.png")));
		this.btnFontColor.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/FontColor.png")));
		this.btnDateTime.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/InsertDate.png")));
		this.btnAbout.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/AboutL.png")));
		this.btnCloseCurrentTabPage.setIcon(new ImageIcon(MultiPageEditor.class
				.getResource("ICON/CloseSelectTabPageL.png")));
	}

	//设置名称和快捷键
        private void mainFrameInit() throws Exception {
		this.setJMenuBar(jMenuBar1);
		this.setTitle("多页文本编辑器");
		this.addWindowListener(new MultiPageEditor_this_windowAdapter(this));
                
		mnuFile.setText("文件(F)");
		mnuFile.setMnemonic('F');
		mnuNew.setText("新建(N)");
		mnuNew.setMnemonic('N');                
		mnuNew.addActionListener(new MultiPageEditor_mnuNew_actionAdapter(this));
		mnuOpen.setText("打开(O)");
		mnuOpen.setMnemonic('O');                
		mnuOpen.addActionListener(new MultiPageEditor_mnuOpen_actionAdapter(this));
		mnuCloseCurrentTabPage.setMnemonic('C');
		mnuCloseCurrentTabPage.setText("关闭当前页(C)");
		mnuCloseCurrentTabPage.addActionListener(new 
                        MultiPageEditor_mnuCloseCurrentTabPage_actionAdapter(this));
		mnuCloseAll.setMnemonic('B');
		mnuCloseAll.setText("全部关闭(B)");
		mnuCloseAll.addActionListener(new 
                        MultiPageEditor_mnuCloseAll_actionAdapter(this));                
		mnuSave.setText("保存(S)");
		mnuSave.setMnemonic('S');                
		mnuSave.addActionListener(new MultiPageEditor_mnuSave_actionAdapter(this));
		mnuSaveAll.setMnemonic('A');
		mnuSaveAll.setText("全部保存(A)");
		mnuSaveAll.addActionListener(new MultiPageEditor_mnuSaveAll_actionAdapter(this));                
		mnuSaveAs.setMnemonic('L');
		mnuSaveAs.setText("另存为(L)");
		mnuSaveAs.addActionListener(new MultiPageEditor_mnuSaveAs_actionAdapter(this));     
		mnuExit.setMnemonic('X');
		mnuExit.setText("退出(X)");
		mnuExit.addActionListener(new MultiPageEditor_mnuExit_actionAdapter(this));
                
		mnuEdit.setText("编辑(E)");
		mnuEdit.setMnemonic('E');
		mnuUndo.setMnemonic('U');
		mnuUndo.setText("撤销 (U)");
		mnuUndo.addActionListener(new MultiPageEditor_mnuUndo_actionAdapter(this));
		mnuRedo.setMnemonic('R');
		mnuRedo.setText("重做(R)");
		mnuRedo.addActionListener(new MultiPageEditor_mnuRedo_actionAdapter(this));
		mnuCut.setMnemonic('T');
		mnuCut.setText("剪切(T)");
		mnuCut.addActionListener(new MultiPageEditor_mnuCut_actionAdapter(this));
		mnuCopy.setMnemonic('C');
		mnuCopy.setText("复制(C)");
		mnuCopy.addActionListener(new MultiPageEditor_mnuCopy_actionAdapter(this));
		mnuPaste.setMnemonic('P');
		mnuPaste.setText("粘贴(P)");
		mnuPaste.addActionListener(new MultiPageEditor_mnuPaste_actionAdapter(this));
		mnuSelectAll.setMnemonic('S');
		mnuSelectAll.setText("全选(S)");
		mnuSelectAll.addActionListener(new 
                        MultiPageEditor_mnuSelectAll_actionAdapter(this));
		mnuClear.setMnemonic('L');
		mnuClear.setText("全部清空 (L)");
		mnuClear.addActionListener(new MultiPageEditor_mnuClear_actionAdapter(this));
                
		mnuStyle.setMnemonic('S');
		mnuStyle.setText("格式(S)");
		mnuFont.setMnemonic('F');
		mnuFont.setText("字体(F)");
		mnuFont.addActionListener(new MultiPageEditor_mnuFont_actionAdapter(this));
		mnuFontColor.setMnemonic('C');
		mnuFontColor.setText("字体颜色(C)");
		mnuFontColor.addActionListener(new 
                        MultiPageEditor_mnuFontColor_actionAdapter(this));
		mnuBackColor.setMnemonic('B');
		mnuBackColor.setText("背景颜色(B)");
		mnuBackColor.addActionListener(new 
                        MultiPageEditor_mnuBackColor_actionAdapter(this));
                
		mnuInsert.setMnemonic('I');
		mnuInsert.setText("插入(I)");
		mnuInsertDateTime.setMnemonic('D');
		mnuInsertDateTime.setText("插入日期/时间(D)");
		mnuInsertDateTime.addActionListener(new 
                        MultiPageEditor_mnuInsertDateTime_actionAdapter(this));
                
                mnuLook.setMnemonic('L');
		mnuLook.setText("查看(L)");
                mnuStatus.setMnemonic('S');
		mnuStatus.setText("状态栏(S)");
                mnuStatus.setSelected(true);
		mnuStatus.addActionListener(new MultiPageEditor_mnuStatus_actionAdapter(this));
		mnuLookAndFeel.setMnemonic('F');
		mnuLookAndFeel.setText("外观(F)");
		mnuMetal.setMnemonic('M');
		mnuMetal.setText("Java默认外观Metal(M)");
		mnuMetal.addActionListener(new MultiPageEditor_mnuMetal_actionAdapter(this));
		mnuCDE.setMnemonic('C');
		mnuCDE.setText("Java CDE/Motif外观(C)");
		mnuCDE.addActionListener(new MultiPageEditor_mnuCDE_actionAdapter(this));
		mnuWindowsXP.setMnemonic('X');
		mnuWindowsXP.setText("WindowsXP外观(X)");
		mnuWindowsXP.addActionListener(new 
                        MultiPageEditor_mnuWindowsXP_actionAdapter(this));
		mnuWindowsClass.setMnemonic('S');
		mnuWindowsClass.setText("Windows经典外观(S)");
		mnuWindowsClass.addActionListener(new 
                        MultiPageEditor_mnuWindowsClass_actionAdapter(this));
                
		mnuHelp.setText("帮助(H)");
		mnuHelp.setMnemonic('H');                
		mnuAbout.setText("关于 (A)");
		mnuAbout.setMnemonic('A');                
		mnuAbout.addActionListener(new MultiPageEditor_mnuAbout_actionAdapter(this));
                
		lblStatus.setMaximumSize(new Dimension(41, 22));
		lblStatus.setMinimumSize(new Dimension(41, 22));
		lblStatus.setPreferredSize(new Dimension(41, 22));
		jToolBar1.setDebugGraphicsOptions(DebugGraphics.NONE_OPTION);

		btnNew.setToolTipText("新建文本文档");
		btnNew.addActionListener(new MultiPageEditor_btnNew_actionAdapter(this));
		btnOpen.setToolTipText("打开文件");
		btnOpen.addActionListener(new MultiPageEditor_btnOpen_actionAdapter(this));
		btnSave.setToolTipText("保存当前页的文件");
		btnSave.addActionListener(new MultiPageEditor_btnSave_actionAdapter(this));                
		btnCut.setToolTipText("剪切 ");
		btnCut.addActionListener(new MultiPageEditor_btnCut_actionAdapter(this));
		btnCopy.setToolTipText("复制");
		btnCopy.addActionListener(new MultiPageEditor_btnCopy_actionAdapter(this));
		btnPaste.setToolTipText("粘贴");
		btnPaste.addActionListener(new MultiPageEditor_btnPaste_actionAdapter(this));
		btnUndo.setToolTipText("撤销");
		btnUndo.addActionListener(new MultiPageEditor_btnUndo_actionAdapter(this));
		btnRedo.setToolTipText("重做");
		btnRedo.addActionListener(new MultiPageEditor_btnRedo_actionAdapter(this));
		btnCloseCurrentTabPage.addActionListener(new 
                        MultiPageEditor_btnCloseCurrentTabPage_actionAdapter(this));
		btnCloseCurrentTabPage.setToolTipText("关闭当前页");
		btnFont.setToolTipText("设置选中文字的字体");
		btnFont.addActionListener(new MultiPageEditor_btnFont_actionAdapter(this));
		btnFontColor.setToolTipText("设置选中文本的颜色");
		btnFontColor.addActionListener(new 
                        MultiPageEditor_btnFontColor_actionAdapter( this));              
		btnDateTime.setToolTipText("插入日期/时间");
		btnDateTime.addActionListener(new 
                        MultiPageEditor_btnDateTime_actionAdapter(this));
		btnAbout.setToolTipText("关于本程序");
		btnAbout.addActionListener(new MultiPageEditor_btnAbout_actionAdapter(this));
		
		jMenuBar1.add(mnuFile);
		jMenuBar1.add(mnuEdit);
		jMenuBar1.add(mnuStyle);
		jMenuBar1.add(mnuInsert);
		jMenuBar1.add(mnuLook);
		jMenuBar1.add(mnuHelp);
		mnuFile.add(mnuNew);
		mnuFile.add(mnuOpen);
		mnuFile.addSeparator();
		mnuFile.add(mnuCloseCurrentTabPage);
		mnuFile.add(mnuCloseAll);
		mnuFile.addSeparator();
		mnuFile.add(mnuSave);
		mnuFile.add(mnuSaveAll);
		mnuFile.add(mnuSaveAs);
		mnuFile.addSeparator();
		mnuFile.add(mnuExit);
		mnuEdit.add(mnuUndo);
		mnuEdit.add(mnuRedo);
		mnuEdit.addSeparator();
		mnuEdit.add(mnuCut);
		mnuEdit.add(mnuCopy);
		mnuEdit.add(mnuPaste);
		mnuEdit.addSeparator();
		mnuEdit.add(mnuSelectAll);
		mnuEdit.add(mnuClear);
		mnuStyle.add(mnuFont);
		mnuStyle.addSeparator();
		mnuStyle.add(mnuFontColor);
		mnuStyle.addSeparator();                
		mnuStyle.add(mnuBackColor);
		mnuInsert.add(mnuInsertDateTime);
		mnuLook.add(mnuStatus);
		mnuLook.add(mnuLookAndFeel);
		mnuLookAndFeel.add(mnuMetal);
		mnuLookAndFeel.add(mnuCDE);
		mnuLookAndFeel.add(mnuWindowsXP);
		mnuLookAndFeel.add(mnuWindowsClass);                
		mnuHelp.add(mnuAbout);
                
		jToolBar1.add(btnNew);
		jToolBar1.add(btnOpen);
		jToolBar1.add(btnSave);
		jToolBar1.addSeparator();
		jToolBar1.add(btnCut);
		jToolBar1.add(btnCopy);
		jToolBar1.add(btnPaste);
		jToolBar1.addSeparator();
		jToolBar1.add(btnUndo);
		jToolBar1.add(btnRedo);
		jToolBar1.addSeparator();
		jToolBar1.add(btnCloseCurrentTabPage);
		jToolBar1.addSeparator();
		jToolBar1.add(btnFont);
		jToolBar1.add(btnFontColor);
		jToolBar1.addSeparator();
		jToolBar1.add(btnDateTime);
		jToolBar1.addSeparator();
		jToolBar1.add(btnAbout);
                
		this.getContentPane().add(jToolBar1, java.awt.BorderLayout.NORTH);
		this.getContentPane().add(TabControl, java.awt.BorderLayout.CENTER);
		this.getContentPane().add(lblStatus, java.awt.BorderLayout.SOUTH);
	}

	static public void main(String[] args) {//主方法
		if (args.length > 0) {// 有参数传入		
			strFile = args[0];
		}
		MultiPageEditor frame = new MultiPageEditor();//创建实例
	}

	/***************************************************************************
	 * 变量区
	 **************************************************************************/
	private static String strFile = null;
	//Tab编辑页的数量
	private int PageCount = 1;
	// 界面外观
	private LookAndFell guiLook = LookAndFell.System;
	// 标签位置
	private TabPosion tabposion = TabPosion.Top;
	// 枚举外观

⌨️ 快捷键说明

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