📄 myedit.java
字号:
//THE IMPORTED LIBRARIES
import javax.swing.*;
import javax.swing.undo.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.*;
import javax.swing.text.*;
import java.text.*;
public class myedit extends JFrame implements ActionListener
{
public static myedit e;
//DECLARATION OF ALL THE VARIABLES USED IN THIS APPLICATION
JTextArea text = new JTextArea(0,0);
JScrollPane scroll = new JScrollPane(text);
JMenuBar mb=new JMenuBar();
JMenu FILE = new JMenu("File");
JMenu EDIT = new JMenu("Edit");
JMenu SEARCH = new JMenu("Search");
JMenu HELP = new JMenu("Help");
JMenuItem NEWFILE = new JMenuItem("New");
JMenuItem OPENFILE = new JMenuItem("Open...");
JMenuItem SAVEFILE = new JMenuItem("Save");
JMenuItem SAVEASFILE = new JMenuItem("Save As...");
JMenuItem EXITFILE = new JMenuItem("Exit");
JMenuItem CUTEDIT = new JMenuItem("Cut");
JMenuItem COPYEDIT = new JMenuItem("Copy");
JMenuItem PASTEDIT = new JMenuItem("Paste");
JMenuItem DELETEDIT = new JMenuItem("Delete");
JMenuItem SELECTEDIT = new JMenuItem("Select All");
JMenuItem TIMEDIT = new JMenuItem("Time/Date");
JCheckBoxMenuItem WORDEDIT = new JCheckBoxMenuItem("Word Wrap");
JMenuItem FONTEDIT = new JMenuItem("Set Font...");
JMenuItem FINDSEARCH = new JMenuItem("Find");
JMenuItem FINDNEXTSEARCH = new JMenuItem("Find Next");
JMenuItem ABOUTHELP = new JMenuItem("About");
JPopupMenu POPUP = new JPopupMenu();
JMenuItem CUTPOPUP = new JMenuItem("Cut");
JMenuItem COPYPOPUP = new JMenuItem("Copy");
JMenuItem PASTEPOPUP = new JMenuItem("Paste");
JMenuItem DELETEPOPUP = new JMenuItem("Delete");
JMenuItem SELECTPOPUP = new JMenuItem("Select All");
UndoManager undo = new UndoManager();
UndoAction undoAction = new UndoAction();
boolean opened = false;
String wholeText,findString,filename = null;
int ind = 0;
//CLASS FOR HANDLING UNDO MENU OPTION OF EDIT AND POPUP MENU
class UndoAction extends AbstractAction
{
public UndoAction()
{
super("Undo");
}
public void actionPerformed(ActionEvent e)
{
try
{
undo.undo();
}
catch (CannotUndoException ex)
{
System.out.println("Unable to undo: " + ex);
ex.printStackTrace();
}
update();
}
protected void update()
{
if(undo.canUndo())
{
setEnabled(true);
putValue("Undo", undo.getUndoPresentationName());
}
else
{
setEnabled(false);
putValue(Action.NAME, "Undo");
}
}
}
//DEFAULT CONSTRUCTOR OF THE MYEDIT CLASS
public myedit()
{
//SETING DEFAULT TITLE OF THE FRAME
setTitle("Untitled");
//SETTING DEFAULT SIZE OF THE FRAME
setSize(600,400);
//MAKING THE FRAME VISIBLE
setVisible(true);
//SETTING WORD WRAP TO TRUE AS DEFAULT
text.setLineWrap(true);
//SETTING THE DEFAULT STATE OF WORDWRAP MENU OPTION IN EDIT MENU
WORDEDIT.setState(true);
//SETTING THE LAYOUT OF THE FRAME
getContentPane().setLayout(new BorderLayout());
//ADDS THE SCROLLPANE CONTAINING THE TEXTAREA TO THE CONTAINER
getContentPane().add(scroll, BorderLayout.CENTER);
//ADDING THE MAIN MENUBAR TO THE FRAME
setJMenuBar(mb);
//ADDING MENUS TO THE MAIN MENUBAR
mb.add(FILE);
mb.add(EDIT);
mb.add(SEARCH);
mb.add(HELP);
//ADDING MENUITEMS TO THE FILE MENU
FILE.add(NEWFILE);
FILE.add(OPENFILE);
FILE.add(SAVEFILE);
FILE.add(SAVEASFILE);
FILE.addSeparator();
FILE.add(EXITFILE);
//ADDING MENUITEMS TO THE EDIT MENU
EDIT.add(undoAction);
EDIT.add(CUTEDIT);
EDIT.add(COPYEDIT);
EDIT.add(PASTEDIT);
EDIT.add(DELETEDIT);
EDIT.addSeparator();
EDIT.add(SELECTEDIT);
EDIT.add(TIMEDIT);
EDIT.addSeparator();
EDIT.add(WORDEDIT);
EDIT.add(FONTEDIT);
//ADDING MENUITEMS TO THE SEARCH MENU
SEARCH.add(FINDSEARCH);
SEARCH.add(FINDNEXTSEARCH);
//ADDING MENUITEM TO THE HELP MENU
HELP.add(ABOUTHELP);
//ADDING MENUITEMS TO THE POPUPMENU
POPUP.add(undoAction);
POPUP.addSeparator();
POPUP.add(CUTPOPUP);
POPUP.add(COPYPOPUP);
POPUP.add(PASTEPOPUP);
POPUP.add(DELETEPOPUP);
POPUP.addSeparator();
POPUP.add(SELECTPOPUP);
//SETTING SHORTCUT KEYS OF MENUS IN THE MAIN MENUBAR
FILE.setMnemonic(KeyEvent.VK_F);
EDIT.setMnemonic(KeyEvent.VK_E);
SEARCH.setMnemonic(KeyEvent.VK_S);
HELP.setMnemonic(KeyEvent.VK_H);
//SETTING SHORTCUT KEYS OF MENUITEMS IN THE FILE MENU
NEWFILE.setMnemonic(KeyEvent.VK_N);
OPENFILE.setMnemonic(KeyEvent.VK_O);
SAVEFILE.setMnemonic(KeyEvent.VK_S);
SAVEASFILE.setMnemonic(KeyEvent.VK_A);
EXITFILE.setMnemonic(KeyEvent.VK_X);
//SETTING SHORTCUT KEYS OF MENUITEMS IN THE EDIT MENU
CUTEDIT.setMnemonic(KeyEvent.VK_T);
COPYEDIT.setMnemonic(KeyEvent.VK_C);
PASTEDIT.setMnemonic(KeyEvent.VK_P);
DELETEDIT.setMnemonic(KeyEvent.VK_L);
SELECTEDIT.setMnemonic(KeyEvent.VK_A);
TIMEDIT.setMnemonic(KeyEvent.VK_D);
WORDEDIT.setMnemonic(KeyEvent.VK_W);
FONTEDIT.setMnemonic(KeyEvent.VK_F);
//SETTING SHORTCUT KEYS OF MENUITEMS IN THE SEARCH MENU
FINDSEARCH.setMnemonic(KeyEvent.VK_F);
FINDNEXTSEARCH.setMnemonic(KeyEvent.VK_N);
//SETTING SHORTCUT KEYS OF MENUITEM IN THE HELP MENU
ABOUTHELP.setMnemonic(KeyEvent.VK_A);
//SETTING SHORTCUT KEYS OF MENUITEMS IN THE POPUPMENU
CUTPOPUP.setMnemonic(KeyEvent.VK_T);
COPYPOPUP.setMnemonic(KeyEvent.VK_C);
PASTEPOPUP.setMnemonic(KeyEvent.VK_P);
DELETEPOPUP.setMnemonic(KeyEvent.VK_D);
SELECTPOPUP.setMnemonic(KeyEvent.VK_A);
//SETTING ACCELERATOR KEYS OF SOME MENUITEMS IN THE EDIT MENU
CUTEDIT.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
COPYEDIT.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));
PASTEDIT.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK));
//ADDING LISTENERS TO THE MENUITEMS IN FILE MENU
NEWFILE.addActionListener(this);
OPENFILE.addActionListener(this);
SAVEFILE.addActionListener(this);
SAVEASFILE.addActionListener(this);
EXITFILE.addActionListener(this);
//ADDING LISTENERS TO THE MENUITEMS IN EDIT MENU
text.getDocument().addUndoableEditListener(new UndoListener());
CUTEDIT.addActionListener(this);
COPYEDIT.addActionListener(this);
PASTEDIT.addActionListener(this);
DELETEDIT.addActionListener(this);
SELECTEDIT.addActionListener(this);
TIMEDIT.addActionListener(this);
WORDEDIT.addActionListener(this);
FONTEDIT.addActionListener(this);
//ADDING LISTENERS TO THE MENUITEMS IN SEARCH MENU
FINDSEARCH.addActionListener(this);
FINDNEXTSEARCH.addActionListener(this);
//ADDING LISTENERS TO THE MENUITEM IN HELP MENU
ABOUTHELP.addActionListener(this);
//ADDING LISTENERS TO THE MENUITEMS IN POPUPMENU
CUTPOPUP.addActionListener(this);
COPYPOPUP.addActionListener(this);
PASTEPOPUP.addActionListener(this);
DELETEPOPUP.addActionListener(this);
SELECTPOPUP.addActionListener(this);
//ADDING MOUSELISTENER TO RIGHT CLICK FOR THE POPUPLISTENER
text.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if (e.isPopupTrigger())
{
POPUP.show(e.getComponent(),e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e)
{
if (e.isPopupTrigger())
{
POPUP.show(e.getComponent(),e.getX(), e.getY());
}
}
});
//ADDING WINDOWLISTENER TO HANDLE CLOSE WINDOW EVENT
/* addWindowListener( new WindowAdapter()
{ public void windowClosing(WindowEvent evt)
{
int response = JOptionPane.showConfirmDialog(null, "Do you really want to quit?");
System.out.println("Inside Window Listener");
switch (response)
{
case 0:
{
dispose();
break; }
case 2:
{
//myedit x = new myedit();
System.out.println("Inside 2");
e=new myedit();
e.setVisible(true);
break;}
}
System.out.println("response is :="+response);
}
} ); */
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
exitApln();
}
});
}
//HANDLING ALL EVENTS OF THE TEXT EDITOR
public void actionPerformed(ActionEvent e)
{
//ACTION FOR NEW MENU OPTION OF FILE MENU
if (e.getSource()==NEWFILE)
{
newfile();
}
//ACTION FOR OPEN MENU OPTION OF FILE MENU
if (e.getSource()==OPENFILE)
{
open();
}
//ACTION FOR SAVE MENU OPTION OF FILE MENU
if (e.getSource()==SAVEFILE)
{
save();
}
//ACTION FOR SAVEAS MENU OPTION OF FILE MENU
if (e.getSource()==SAVEASFILE)
{
opened=false;
save();
}
//ACTION FOR EXIT MENU OPTION OF FILE MENU
if (e.getSource()==EXITFILE)
{
exitApln();
}
//ACTION FOR CUT MENU OPTION OF EDIT MENU AND POPUPMENU
if ((e.getSource()==CUTEDIT)||(e.getSource()==CUTPOPUP))
{
text.cut();
}
//ACTION FOR COPY MENU OPTION OF EDIT MENU AND POPUPMENU
if ((e.getSource()==COPYEDIT)||(e.getSource()==COPYPOPUP))
{
text.copy();
}
//ACTION FOR PASTE MENU OPTION OF EDIT MENU AND POPUPMENU
if ((e.getSource()==PASTEDIT)||(e.getSource()==PASTEPOPUP))
{
text.paste();
}
//ACTION FOR DELETE MENU OPTION OF EDIT MENU AND POPUPMENU
if ((e.getSource()==DELETEDIT)||(e.getSource()==DELETEPOPUP))
{
text.replaceSelection(null);
}
//ACTION FOR SELECTALL MENU OPTION OF EDIT MENU AND POPUPMENU
if ((e.getSource()==SELECTEDIT)||(e.getSource()==SELECTPOPUP))
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -