📄 frmmain.java
字号:
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 + -