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

📄 frmmain.java

📁 多页文本编辑器(MulitPageEditor) 本程序是我学java一个星期后写的第一个程序,程序是很俗气的了,但是自我觉的还写的不错,呵呵,就拿出来共享一下,整个框架还是不错滴,有学习的价值,由
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

	JMenuItem mnuSave = new JMenuItem();

	JMenuItem mnuSaveAs = new JMenuItem();

	JMenuItem mnuPrint = new JMenuItem();

	JMenuItem mnuPrintPrev = new JMenuItem();

	JMenuItem mnuPageSetup = new JMenuItem();

	JMenuItem mnuExit = new JMenuItem();

	JMenuItem mnuUndo = new JMenuItem();

	JMenuItem mnuRedo = new JMenuItem();

	JMenuItem mnuCut = new JMenuItem();

	JMenuItem mnuCopy = new JMenuItem();

	JMenuItem mnuPaste = new JMenuItem();

	JMenuItem mnuFind = new JMenuItem();

	JMenuItem mnuSwap = 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 mnuLook = new JMenu();

	JCheckBoxMenuItem mnuStause = new JCheckBoxMenuItem();

	JMenu mnuLookAndFeel = new JMenu();

	JMenuItem mnuBorland = new JMenuItem();

	JMenuItem mnuMetal = new JMenuItem();

	JMenuItem mnuCDE = new JMenuItem();

	JMenuItem mnuWindowsXP = new JMenuItem();

	JMenuItem mnuWindowsClass = new JMenuItem();

	JButton btnNew = new JButton();

	JButton btnPrint = new JButton();

	JButton btnPrintPrev = new JButton();

	JButton btnFind = new JButton();

	JButton btnCut = new JButton();

	JButton btnCopy = new JButton();

	JButton btnPaste = new JButton();

	JButton btnUndo = new JButton();

	JButton btnRedo = new JButton();

	JButton btnDateTime = new JButton();

	JButton btnAbout = new JButton();

	JButton btnFontColor = new JButton();

	JButton btnFont = new JButton();

	JMenu mnuInsert = new JMenu();

	JMenuItem mnuInsertDateTime = new JMenuItem();

	JMenuItem mnuSaveAll = new JMenuItem();

	JButton btnCloseCurrentTabPage = new JButton();

	JMenuItem mnuCloseAll = new JMenuItem();

	JMenuItem mnuCloseCurrentTabPage = new JMenuItem();

	JMenu mnuOpendFile = new JMenu(); // 打开过的文件

	static public void main(String[] args)
	{
		/*
		 * try { //
		 * UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }
		 * catch(Exception ex) { System.out.println(ex.toString()); }
		 */
		if (args.length > 0) // 有参数传入
		{
			strFile = args[0];
		}
		frmMain frame = new frmMain();
		// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	/***************************************************************************
	 * 变量区
	 **************************************************************************/
	private static String strFile = null;

	/**
	 * page的数量
	 */
	private int PageCount = 1;

	/**
	 * 界面外观
	 */
	private LookAndFell guiLook = LookAndFell.System;

	/**
	 * 标签位置
	 */
	private TabPosion tabposion = TabPosion.Top;

	/**
	 *保存打开过的文件名
	 **/
	private ArrayList<String> openedFileList=new ArrayList<String>();
	/**
	 * 枚举外观
	 */
	enum LookAndFell
	{
		System, Meta, CDE, Borland, WinXP, WinClass,
	};

	/**
	 * 枚举标签位置
	 */

	enum TabPosion
	{
		Top, Bottom, Left, Right,
	};

	/**
	 * 新建一个文档
	 */
	public void btnNew_actionPerformed(ActionEvent e)
	{
		NewPage();
	}

	private void NewPage()
	{
		EditorTabPage page = new EditorTabPage();
		this.TabControl.addTab("新建文本文档" + PageCount, new ImageIcon(this
				.getClass().getResource("ICON/TabPage.png")), page);
		PageCount += 1;
		setTabPage();
		this.repaint();
	}

	/**
	 * 打开一个或多个文档
	 */
	public void btnOpen_actionPerformed(ActionEvent e)
	{
		OpenDoc();
	}

	private void OpenDoc()
	{
		JFileChooser open = new JFileChooser();
		open.setDialogTitle("打开文件");
		open.setMultiSelectionEnabled(true);
		int result = open.showOpenDialog(this);
		if (result == JFileChooser.APPROVE_OPTION)
		{
			File[] files = open.getSelectedFiles();
			lblStatus.setText("正在打开文件.....");
			// ArrayList filenames=new ArrayList();
			for (int i = 0; i < files.length; i++)
			{
				// filenames.add(files[i].getPath());
				Open(files[i].getPath(), files[i].getName());
			}
			setTabPage();
			lblStatus.setText("准备就绪");
		}
	}

	private void setTabPage()
	{
		TabControl.setSelectedIndex(TabControl.getTabCount() - 1);
	}

	private void Open(String filename, String name)
	{
		EditorTabPage page = new EditorTabPage(filename);
		addToList(filename);
		if (name.length() > 15)
		{
			name = name.substring(0, 14); // 名称太长了截短点
		}
		this.TabControl.addTab(name, new ImageIcon(this.getClass().getResource(
				"ICON/TabPage.png")), page); // 添加一个Tab页
		this.repaint();
	}
	
	private void addToList(String filename)
	{
		if(!openedFileList.contains(filename))
		{
			openedFileList.add(filename);
		}
	}

	/**
	 * 保存一个文档
	 */
	public void btnSave_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			if (page.getIsDocumentChanged())
			{
				lblStatus.setText("正在保存文件......");
				page.SaveDocument();
				lblStatus.setText("准备就绪");
			}
		}
	}

	private EditorTabPage getCurrentPage()
	{
		if (TabControl.getSelectedIndex() == -1)
		{
			return null;
		}
		EditorTabPage page = (EditorTabPage) TabControl
				.getComponentAt(TabControl.getSelectedIndex());
		return page;
	}

	private void NotSupportCurrent()
	{
		JOptionPane.showMessageDialog(this, "这个功能目前还没有实现!!请继续关注本程序.");
	}

	/**
	 * 打印当前文档
	 */
	public void btnPrint_actionPerformed(ActionEvent e)
	{
		NotSupportCurrent();
	}

	/**
	 * 预览当前文档
	 */
	public void btnPrintPrev_actionPerformed(ActionEvent e)
	{
		NotSupportCurrent();
	}

	/**
	 * 查找当前文档
	 */
	public void btnFind_actionPerformed(ActionEvent e)
	{
		NotSupportCurrent();
	}

	/**
	 * 剪切
	 */
	public void btnCut_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.Cut();
		}
	}

	/**
	 * 复制
	 */
	public void btnCopy_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.Copy();
		}
	}

	/**
	 * 粘贴
	 */
	public void btnPaste_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.Paste();
		}
	}

	/**
	 * 撤销
	 */
	public void btnUndo_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.Undo();
		}
	}

	/**
	 * 重做
	 */
	public void btnRedo_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.Redo();
		}
	}

	/**
	 * 设置当前文档选中文本的字体
	 */
	public void btnFont_actionPerformed(ActionEvent e)
	{
		setSelectFont();
	}

	private void setSelectFont()
	{
		EditorTabPage page = getCurrentPage();
		if (page == null)
		{
			return;
		}
		/*
		 * FontChooser font = new FontChooser();
		 * font.setSampleText("ABCabc风中过客");
		 * font.setSelectedFont(page.getDocumentFont());
		 * font.setTitle("请选择一种字体"); font.setFrame(this); boolean
		 * result=font.showDialog(); if(result) {
		 * page.setDocumentFont(font.getSelectedFont()); }
		 */
		FontDialog dialog = new FontDialog(this, "请选择一种字体", page
				.getDocumentFont(), true);
		dialog.showDialog();
		// System.out.println(dialog.getDialogResult());
		if (FontDialog.DialogResult.Ok == dialog.getDialogResult())
		{
			// System.out.println(dialog.getSelectedFont().toString());
			page.setDocumentFont(dialog.getSelectedFont());
		}
		dialog.Dispose();
	}

	/**
	 * 设置选中文本的字体颜色
	 */
	public void btnFontColor_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page == null)
		{
			return;
		}
		Color color = getChooseColor(page.getFontColor());
		page.setFontColor(color);
	}

	private Color getChooseColor(Color oldcolor)
	{
		Color color = JColorChooser.showDialog(this, "", oldcolor);
		return color;
	}

	/**
	 * 设置当前文档的背景色
	 */
	/*
	 * ActionListener mnuBackColor_actionPerformed = new ActionListener() {
	 * public void actionPerformed(ActionEvent event) {
	 *  } };
	 */

	/**
	 * 插入如期和时间
	 */
	public void btnDateTime_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			page.InsertDataTime();
		}
	}

	/**
	 * 显示关于对话框
	 */
	public void btnAbout_actionPerformed(ActionEvent e)
	{
		frmAbout frm = new frmAbout();
		frm.setVisible(true);
	}

	/**
	 * 关闭当前页
	 */
	public void btnCloseCurrentTabPage_actionPerformed(ActionEvent e)
	{
		EditorTabPage page = getCurrentPage();
		if (page != null)
		{
			if (page.getIsDocumentChanged())
			{
				if (IsWantSave() == JOptionPane.YES_OPTION) // 要保存更改
				{
					page.SaveDocument();
				}
			}
			page.Dispose();
			TabControl.remove(page);
		}
	}

	private int IsWantSave()
	{
		int result = JOptionPane.showConfirmDialog(this, "本文件已被更改是否要保存本文件?",
				"保存", JOptionPane.YES_NO_OPTION,
				JOptionPane.INFORMATION_MESSAGE);
		return result;
	}

	public void mnuNew_actionPerformed(ActionEvent e)
	{
		NewPage();
	}

	public void mnuOpen_actionPerformed(ActionEvent e)
	{
		OpenDoc();
	}

	public void mnuCloseCurrentTabPage_actionPerformed(ActionEvent e)
	{
		btnCloseCurrentTabPage_actionPerformed(null);
	}

	public void mnuCloseAll_actionPerformed(ActionEvent e)
	{
		while (this.TabControl.getSelectedIndex() != -1)
		{
			btnCloseCurrentTabPage_actionPerformed(null);
		}
	}

	public void mnuSave_actionPerformed(ActionEvent e)
	{
		btnSave_actionPerformed(null);
	}

	private EditorTabPage getTapPageByIndex(int index)
	{
		if(index<0 || index >TabControl.getTabCount())
		{
			return null;
		}
		else
		{
			EditorTabPage et=(EditorTabPage)TabControl.getComponentAt(index);
			return et;
		}
	}
	public void mnuSaveAll_actionPerformed(ActionEvent e)
	{

		int count = TabControl.getTabCount();
		for (int i = 0; i < count; i++)
		{
			EditorTabPage page = getTapPageByIndex(i);
			if (page != null)

⌨️ 快捷键说明

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