You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1247 lines
48 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.yyj.nodepad.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.PrintJob;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.undo.UndoManager;
import com.yyj.nodepad.util.Clock;
import com.yyj.nodepad.util.MQFontChooser;
import com.yyj.nodepad.util.SystemParam;
import com.yyj.nodepad.util.TestLine;
public class NotepadMainFrame extends JFrame implements ActionListener{
/**
* <20><><EFBFBD>к<EFBFBD>
*/
private static final long serialVersionUID = 8585210209467333480L;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private JPanel contentPane;
//<2F><EFBFBD><E0BCAD>
private JTextArea textArea;
//<2F>򿪲˵<F2BFAAB2><CBB5><EFBFBD>
private JMenuItem itemOpen;
//<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>
private JMenuItem itemSave;
//1<><31><EFBFBD>½<EFBFBD>
//2<><32><EFBFBD>޸Ĺ<DEB8>
//3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int flag=0;
//<2F><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
String currentFileName=null;
PrintJob p=null;//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA>ӡ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
Graphics g=null;//Ҫ<><D2AA>ӡ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
//<2F><>ǰ<EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
String currentPath=null;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
JColorChooser jcc1=null;
Color color=Color.BLACK;
//<2F>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int linenum = 1;
int columnnum = 1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public UndoManager undoMgr = new UndoManager();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Clipboard clipboard = new Clipboard("ϵͳ<CFB5><CDB3><EFBFBD>а<EFBFBD>");
private JMenuItem itemSaveAs; //<2F><><EFBFBD><EFBFBD>Ϊ
private JMenuItem itemNew; //<2F>½<EFBFBD>
private JMenuItem itemPage; //ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private JSeparator separator; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JMenuItem itemPrint; //<2F><>ӡ
private JMenuItem itemExit; //<2F>˳<EFBFBD>
private JSeparator separator_1; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JMenu itemEdit; //<2F>
private JMenu itFormat; //<2F><>ʽ
private JMenu itemCheck; //<2F>
private JMenu itemHelp; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemSearchForHelp; //<2F><EFBFBD><E9BFB4><EFBFBD><EFBFBD>
private JMenuItem itemAboutNotepad; //<2F><><EFBFBD>ڼ<EFBFBD><DABC>±<EFBFBD>
private JMenuItem itemUndo; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemCut; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemCopy; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemPaste; //ճ<><D5B3>
private JMenuItem itemDelete; //ɾ<><C9BE>
private JMenuItem itemFind; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemFindNext; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
private JMenuItem itemReplace; //<2F>
private JMenuItem itemTurnTo; //ת<><D7AA>
private JMenuItem itemSelectAll; //ȫѡ
private JMenuItem itemTime; //<2F><><EFBFBD><EFBFBD><><CAB1>
private JMenuItem itemFont; //<2F><><EFBFBD><EFBFBD>
private JMenuItem itemColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
private JMenuItem itemFontColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
private JCheckBoxMenuItem itemNextLine; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
private JScrollPane scrollPane; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private JCheckBoxMenuItem itemStatement; //״̬<D7B4><CCAC>
private JToolBar toolState;
public static JLabel label1;
private JLabel label2;
private JLabel label3;
int length=0;
int sum=0;
/**
* <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NotepadMainFrame frame = new NotepadMainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
GregorianCalendar c=new GregorianCalendar();
int hour=c.get(Calendar.HOUR_OF_DAY);
int min=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
private JPopupMenu popupMenu; //<2F>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
private JMenuItem popM_Undo; //<2F><><EFBFBD><EFBFBD>
private JMenuItem popM_Cut; //<2F><><EFBFBD><EFBFBD>
private JMenuItem popM_Copy; //<2F><><EFBFBD><EFBFBD>
private JMenuItem popM_Paste; //ճ<><D5B3>
private JMenuItem popM_Delete; //ɾ<><C9BE>
private JMenuItem popM_SelectAll; //ȫѡ
private JMenuItem popM_toLeft; //<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>˳<EFBFBD><CBB3>
private JMenuItem popM_showUnicode; //<2F><>ʾUnicode<64><65><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
private JMenuItem popM_closeIMe; //<2F>ر<EFBFBD>IME
private JMenuItem popM_InsertUnicode; //<2F><><EFBFBD><EFBFBD>Unicode<64><65><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
private JMenuItem popM_RestartSelect; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ
private JSeparator separator_2; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JSeparator separator_3; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JSeparator separator_4; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JSeparator separator_5; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JMenuItem itemRedo; //<2F>ָ<EFBFBD>
private JSeparator separator_6; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JSeparator separator_7; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JSeparator separator_8; //<2F>ָ<EFBFBD><D6B8><EFBFBD>
private JMenuItem popM_Redo; //<2F>ָ<EFBFBD>
/**
* Create the frame.
* <20><><EFBFBD><EFBFBD><ECBAAF>
*/
public NotepadMainFrame() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
e1.printStackTrace();
}
setTitle("<22>ޱ<EFBFBD><DEB1><EFBFBD>");
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
setBounds(100, 100, 721, 772);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu itemFile = new JMenu("<22>ļ<EFBFBD>(F)");
itemFile.setMnemonic('F'); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>"F"
menuBar.add(itemFile);
itemNew = new JMenuItem("<22>½<EFBFBD>(N)",'N');
itemNew.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"N"
itemNew.addActionListener(this);
itemFile.add(itemNew);
itemOpen = new JMenuItem("<22><><EFBFBD><EFBFBD>(O)",'O');
itemOpen.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"O"
itemOpen.addActionListener(this);
itemFile.add(itemOpen);
itemSave = new JMenuItem("<22><><EFBFBD><EFBFBD>(S)");
itemSave.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"S"
itemSave.addActionListener(this);
itemFile.add(itemSave);
itemSaveAs = new JMenuItem("<22><><EFBFBD><EFBFBD>Ϊ(A)");
itemSaveAs.addActionListener(this);
itemFile.add(itemSaveAs);
separator = new JSeparator(); //<2F><><EFBFBD>ӷָ<D3B7><D6B8><EFBFBD>
itemFile.add(separator);
itemPage = new JMenuItem(<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(U)",'U');
itemPage.addActionListener(this);
itemFile.add(itemPage);
itemPrint = new JMenuItem("<22><>ӡ(P)...",'P');
itemPrint.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P,
java.awt.Event.CTRL_MASK)); //<2F>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"P"
itemPrint.addActionListener(this);
itemFile.add(itemPrint);
separator_1 = new JSeparator();
itemFile.add(separator_1);
itemExit = new JMenuItem("<22>˳<EFBFBD>(X)",'X');
itemExit.addActionListener(this);
itemFile.add(itemExit);
itemEdit = new JMenu("<22>༭(E)");
itemEdit.setMnemonic('E');
menuBar.add(itemEdit);
itemUndo = new JMenuItem("<22><><EFBFBD><EFBFBD>(U)",'U');
itemUndo.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"Z"
itemUndo.addActionListener(this);
itemEdit.add(itemUndo);
itemRedo = new JMenuItem("<22>ָ<EFBFBD>(R)");
itemRedo.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"R"
itemRedo.addActionListener(this);
itemEdit.add(itemRedo);
itemCut = new JMenuItem("<22><><EFBFBD><EFBFBD>(T)",'T');
itemCut.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"X"
itemCut.addActionListener(this);
separator_6 = new JSeparator();
itemEdit.add(separator_6);
itemEdit.add(itemCut);
itemCopy = new JMenuItem("<22><><EFBFBD><EFBFBD>(C)",'C');
itemCopy.addActionListener(this);
itemCopy.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"C"
itemEdit.add(itemCopy);
itemPaste = new JMenuItem(<><D5B3>(P)",'P');
itemPaste.addActionListener(this);
itemPaste.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"V"
itemEdit.add(itemPaste);
itemDelete = new JMenuItem(<><C9BE>(L)",'L');
itemDelete.addActionListener(this);
itemDelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
InputEvent.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"D"
itemEdit.add(itemDelete);
separator_7 = new JSeparator();
itemEdit.add(separator_7);
itemFind = new JMenuItem("<22><><EFBFBD><EFBFBD>(F)",'F');
itemFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"F"
itemFind.addActionListener(this);
itemEdit.add(itemFind);
itemFindNext = new JMenuItem("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>(N)",'N');
itemFindNext.setAccelerator(KeyStroke.getKeyStroke("F3"));
itemFindNext.addActionListener(this);
itemEdit.add(itemFindNext);
itemReplace = new JMenuItem("<22>滻(R)",'R');
itemReplace.addActionListener(this);
itemReplace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,
Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"H"
itemEdit.add(itemReplace);
itemTurnTo = new JMenuItem(<><D7AA>(G)",'G');
itemTurnTo.addActionListener(this);
itemTurnTo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,
Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"G"
itemEdit.add(itemTurnTo);
itemSelectAll = new JMenuItem("ȫѡ(A)",'A');
itemSelectAll.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A,
java.awt.Event.CTRL_MASK)); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD>Ctrl+"A"
itemSelectAll.addActionListener(this);
separator_8 = new JSeparator();
itemEdit.add(separator_8);
itemEdit.add(itemSelectAll);
itemTime = new JMenuItem(<><CAB1>/<2F><><EFBFBD><EFBFBD>(D)",'D');
itemTime.addActionListener(this);
itemTime.setAccelerator(KeyStroke.getKeyStroke("F5"));
itemEdit.add(itemTime);
itFormat = new JMenu("<22><>ʽ(O)");
itFormat.setMnemonic('O');
menuBar.add(itFormat);
itemNextLine = new JCheckBoxMenuItem("<22>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>(W)");
itemNextLine.addActionListener(this);
itFormat.add(itemNextLine);
itemFont = new JMenuItem("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С(F)...");
itemFont.addActionListener(this);
itFormat.add(itemFont);
itemColor = new JMenuItem("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(C)...");
itemColor.addActionListener(this);
itFormat.add(itemColor);
itemFontColor = new JMenuItem("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(I)...");
itemFontColor.addActionListener(this);
itFormat.add(itemFontColor);
itemCheck = new JMenu("<22>鿴(V)");
itemCheck.setMnemonic('V');
menuBar.add(itemCheck);
itemStatement = new JCheckBoxMenuItem("״̬<D7B4><CCAC>(S)");
itemStatement.addActionListener(this);
itemCheck.add(itemStatement);
itemHelp = new JMenu("<22><><EFBFBD><EFBFBD>(H)");
itemHelp.setMnemonic('H');
menuBar.add(itemHelp);
itemSearchForHelp = new JMenuItem("<22><EFBFBD><E9BFB4><EFBFBD><EFBFBD>(H)",'H');
itemSearchForHelp.addActionListener(this);
itemHelp.add(itemSearchForHelp);
itemAboutNotepad = new JMenuItem("<22><><EFBFBD>ڼ<EFBFBD><DABC>±<EFBFBD>(A)",'A');
itemAboutNotepad.addActionListener(this);
itemHelp.add(itemAboutNotepad);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
//<2F><><EFBFBD>ñ߿򲼾<DFBF>
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
textArea = new JTextArea();
//VERTICAL<41><4C>ֱ HORIZONTALˮƽ
scrollPane = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//contentPane2=new JPanel();
//contentPane2.setSize(10,textArea.getSize().height);
//contentPane.add(contentPane2, BorderLayout.WEST);
TestLine view = new TestLine(); //<2F><><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
scrollPane.setRowHeaderView(view);
popupMenu = new JPopupMenu();
addPopup(textArea, popupMenu);
popM_Undo = new JMenuItem("<22><><EFBFBD><EFBFBD>(U)");
popM_Undo.addActionListener(this);
popupMenu.add(popM_Undo);
popM_Redo = new JMenuItem("<22>ָ<EFBFBD>(R)");
popM_Redo.addActionListener(this);
popupMenu.add(popM_Redo);
separator_2 = new JSeparator();
popupMenu.add(separator_2);
popM_Cut = new JMenuItem("<22><><EFBFBD><EFBFBD>(T)");
popM_Cut.addActionListener(this);
popupMenu.add(popM_Cut);
popM_Copy = new JMenuItem("<22><><EFBFBD><EFBFBD>(C)");
popM_Copy.addActionListener(this);
popupMenu.add(popM_Copy);
popM_Paste = new JMenuItem(<><D5B3>(P)");
popM_Paste.addActionListener(this);
popupMenu.add(popM_Paste);
popM_Delete = new JMenuItem(<><C9BE>(D)");
popM_Delete.addActionListener(this);
popupMenu.add(popM_Delete);
separator_3 = new JSeparator();
popupMenu.add(separator_3);
popM_SelectAll = new JMenuItem("ȫѡ(A)");
popM_SelectAll.addActionListener(this);
popupMenu.add(popM_SelectAll);
separator_4 = new JSeparator();
popupMenu.add(separator_4);
popM_toLeft = new JMenuItem("<22><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>˳<EFBFBD><CBB3>(R)");
popM_toLeft.addActionListener(this);
popupMenu.add(popM_toLeft);
popM_showUnicode = new JMenuItem("<22><>ʾUnicode<64><65><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>(S)");
popM_showUnicode.addActionListener(this);
popupMenu.add(popM_showUnicode);
popM_InsertUnicode = new JMenuItem("<22><><EFBFBD><EFBFBD>Unicode<64><65><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>(I)");
popM_InsertUnicode.addActionListener(this);
popupMenu.add(popM_InsertUnicode);
separator_5 = new JSeparator();
popupMenu.add(separator_5);
popM_closeIMe = new JMenuItem("<22>ر<EFBFBD>IME(L)");
popM_closeIMe.addActionListener(this);
popupMenu.add(popM_closeIMe);
popM_RestartSelect = new JMenuItem("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ(R)");
popM_RestartSelect.addActionListener(this);
popupMenu.add(popM_RestartSelect);
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>м䡿
contentPane.add(scrollPane, BorderLayout.CENTER);
//<2F><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
textArea.getDocument().addUndoableEditListener(undoMgr);
//<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
toolState = new JToolBar();
toolState.setSize(textArea.getSize().width, 10);//toolState.setLayout(new FlowLayout(FlowLayout.LEFT));
label1 = new JLabel(" <20><>ǰϵͳʱ<CDB3>䣺" + hour + ":" + min + ":" + second+" ");
toolState.add(label1); //<2F><><EFBFBD><EFBFBD>ϵͳʱ<CDB3><CAB1>
toolState.addSeparator();
label2 = new JLabel(" <20><> " + linenum + " <20><>, <20><> " + columnnum+" <20><> ");
toolState.add(label2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
toolState.addSeparator();
label3 = new JLabel(" һ<><D2BB> " +length+" <20><> ");
toolState.add(label3); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>
textArea.addCaretListener(new CaretListener() { //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public void caretUpdate(CaretEvent e) {
//sum=0;
JTextArea editArea = (JTextArea)e.getSource();
try {
int caretpos = editArea.getCaretPosition();
linenum = editArea.getLineOfOffset(caretpos);
columnnum = caretpos - textArea.getLineStartOffset(linenum);
linenum += 1;
label2.setText(" <20><> " + linenum + " <20><>, <20><> " + (columnnum+1)+" <20><> ");
//sum+=columnnum+1;
//length+=sum;
length=NotepadMainFrame.this.textArea.getText().toString().length();
label3.setText(" һ<><D2BB> " +length+" <20><> ");
}
catch(Exception ex) { }
}});
contentPane.add(toolState, BorderLayout.SOUTH); //<2F><>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
toolState.setVisible(true);
toolState.setFloatable(false);
Clock clock=new Clock();
clock.start();//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>߳<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
final JPopupMenu jp=new JPopupMenu(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz˵<C7B2><CBB5><EFBFBD>
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON3)//ֻ<><D6BB>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
{
jp.show(e.getComponent(),e.getX(),e.getY());//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ʽ<EFBFBD>˵<EFBFBD>
}
}
});
isChanged();
this.MainFrameWidowListener();
}
/*===============================1====================================*/
/**
* <20>Ƿ<EFBFBD><C7B7>б
*/
private void isChanged() {
textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD>˶<EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ȴû<C8B4>иı<D0B8>textArea<65><61><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ж<EFBFBD>
Character c=e.getKeyChar();
if(c != null && !textArea.getText().toString().equals("")){
flag=2;
}
}
});
}
/*===================================================================*/
/*===============================2====================================*/
/**
* <20>½<EFBFBD><C2BD>Ļ򱣴<C4BB><F2B1A3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
*/
private void MainFrameWidowListener() {
this.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
if(flag==2 && currentPath==null){
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.saveAs();
}else if(result==JOptionPane.NO_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}else if(flag==2 && currentPath!=null){
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1>浽"+currentPath+"?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.save();
}else if(result==JOptionPane.NO_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}else{
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, <><C8B7><EFBFBD>رգ<D8B1>", "ϵͳ<CFB5><CDB3>ʾ", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
}
});
}
/*===================================================================*/
/*==============================3=====================================*/
/**
* <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
*/
public void actionPerformed(ActionEvent e) {
if(e.getSource()==itemOpen){ //<2F><><EFBFBD><EFBFBD>
openFile();
}else if(e.getSource()==itemSave){ //<2F><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ǵ򿪵ģ<F2BFAAB5><C4A3>Ϳ<EFBFBD><CDBF><EFBFBD>ֱ<EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
save();
}else if(e.getSource()==itemSaveAs){ //<2F><><EFBFBD><EFBFBD>Ϊ
saveAs();
}else if(e.getSource()==itemNew){ //<2F>½<EFBFBD>
newFile();
}else if(e.getSource()==itemExit){ //<2F>˳<EFBFBD>
exit();
}else if(e.getSource()==itemPage){ //ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>ٶȵ<D9B6><C8B5>ģ<EFBFBD><C4A3><EFBFBD>֪<EFBFBD><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>
PageFormat pf = new PageFormat();
PrinterJob.getPrinterJob().pageDialog(pf);
}else if(e.getSource()==itemPrint){ //<2F><>ӡ
//<2F><>ӡ<EFBFBD><D3A1>
Print();
}else if(e.getSource()==itemUndo || e.getSource()==popM_Undo){ //<2F><><EFBFBD><EFBFBD>
if(undoMgr.canUndo()){
undoMgr.undo();
}
}else if(e.getSource()==itemRedo || e.getSource()==popM_Redo){ //<2F>ָ<EFBFBD>
if(undoMgr.canRedo()){
undoMgr.redo();
}
}else if(e.getSource()==itemCut || e.getSource()==popM_Cut){ //<2F><><EFBFBD><EFBFBD>
cut();
}else if(e.getSource()==itemCopy || e.getSource()==popM_Copy){ //<2F><><EFBFBD><EFBFBD>
copy();
}else if(e.getSource()==itemPaste || e.getSource()==popM_Paste){ //ճ<><D5B3>
paste();
}else if(e.getSource()==itemDelete || e.getSource()==popM_Delete){ //ɾ<><C9BE>
String tem=textArea.getText().toString();
textArea.setText(tem.substring(0,textArea.getSelectionStart()));
}else if(e.getSource()==itemFind){ //<2F><><EFBFBD><EFBFBD>
mySearch();
}else if(e.getSource()==itemFindNext){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
mySearch();
}else if(e.getSource()==itemReplace){ //<2F>
mySearch();
}else if(e.getSource()==itemTurnTo){ //ת<><D7AA>
turnTo();
}else if(e.getSource()==itemSelectAll || e.getSource()==popM_SelectAll){ //ѡ<><D1A1>ȫ<EFBFBD><C8AB>
textArea.selectAll();
}else if(e.getSource()==itemTime){ //ʱ<><CAB1>/<2F><><EFBFBD><EFBFBD>
textArea.append(hour+":"+min+" "+c.get(Calendar.YEAR)+"/"+(c.get(Calendar.MONTH)+1)+"/"+c.get(Calendar.DAY_OF_MONTH));
}else if(e.getSource()==itemNextLine){ //<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>в<EFBFBD><D0B2>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ false<73><65>
if(itemNextLine.isSelected()){
textArea.setLineWrap(true);
}else{
textArea.setLineWrap(false);
}
}else if(e.getSource()==itemFont){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪԤ<CEAA><D4A4>ֵ
MQFontChooser fontChooser = new MQFontChooser(textArea.getFont());
fontChooser.showFontDialog(this);
Font font = fontChooser.getSelectFont();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>JTextArea<65><61>
textArea.setFont(font);
}else if(e.getSource()==itemColor){ //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ɫ
jcc1 = new JColorChooser();
JOptionPane.showMessageDialog(this, jcc1,"ѡ<>񱳾<EFBFBD><F1B1B3BE><EFBFBD>ɫ<EFBFBD><C9AB>ɫ",-1);
color = jcc1.getColor();
textArea.setBackground(color);
}else if(e.getSource()==itemFontColor){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
jcc1=new JColorChooser();
JOptionPane.showMessageDialog(this, jcc1, "ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ", -1);
color = jcc1.getColor();
//String string=textArea.getSelectedText();
textArea.setForeground(color);
}else if(e.getSource()==itemStatement){ //<2F><><EFBFBD><EFBFBD>״̬
if(itemStatement.isSelected()){
//scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
toolState.setVisible(true);
}else{
//scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
toolState.setVisible(false);
}
}else if(e.getSource()==itemSearchForHelp){
JOptionPane.showMessageDialog(this, "<22>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø绹<C3B8><E7BBB9><EFBFBD>Ǵ<EFBFBD>˵<EFBFBD><CBB5>","<22>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>",1);
}else if(e.getSource()==itemAboutNotepad){
JOptionPane.showMessageDialog(this, "<22><><EFBFBD>±<EFBFBD>V1.0<EFBFBD><EFBFBD>1504<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<22><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ",1);
}
}
/*===================================================================*/
private void turnTo() {
final JDialog gotoDialog = new JDialog(this, <><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
JLabel gotoLabel = new JLabel("<22><><EFBFBD><EFBFBD>(L):");
final JTextField linenum = new JTextField(5);
linenum.setText("1");
linenum.selectAll();
JButton okButton = new JButton(<><C8B7>");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int totalLine = textArea.getLineCount();
int[] lineNumber = new int[totalLine + 1];
String s = textArea.getText();
int pos = 0, t = 0;
while (true) {
pos = s.indexOf('\12', pos);
// System.out.println("<22><><EFBFBD><EFBFBD>pos:"+pos);
if (pos == -1)
break;
lineNumber[t++] = pos++;
}
int gt = 1;
try {
gt = Integer.parseInt(linenum.getText());
} catch (NumberFormatException efe) {
JOptionPane.showMessageDialog(null, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!", "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
linenum.requestFocus(true);
return;
}
if (gt < 2 || gt >= totalLine) {
if (gt < 2)
textArea.setCaretPosition(0);
else
textArea.setCaretPosition(s.length());
} else
textArea.setCaretPosition(lineNumber[gt - 2] + 1);
gotoDialog.dispose();//<2F>رմ<D8B1><D5B4><EFBFBD>
}
});
JButton cancelButton = new JButton(<><C8A1>");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
gotoDialog.dispose();
}
});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Container con = gotoDialog.getContentPane();
con.setLayout(new FlowLayout());
con.add(gotoLabel);
con.add(linenum);
con.add(okButton);
con.add(cancelButton);
gotoDialog.setSize(200, 100);
gotoDialog.setResizable(false);
gotoDialog.setLocation(300, 280);
gotoDialog.setVisible(true);
}
/*===============================8====================================*/
/**
* <20>˳<EFBFBD><CBB3><EFBFBD>ť<EFBFBD><C5A5><EFBFBD>ʹ<EFBFBD><CDB4>ڵĺ<DAB5><C4BA><EFBFBD>ʵ<EFBFBD><CAB5>һ<EFBFBD><D2BB><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
*/
private void exit() {
if(flag==2 && currentPath==null){
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.saveAs();
}else if(result==JOptionPane.NO_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}else if(flag==2 && currentPath!=null){
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1>浽"+currentPath+"?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.save();
}else if(result==JOptionPane.NO_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}else{
//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, <><C8B7><EFBFBD>رգ<D8B1>", "ϵͳ<CFB5><CDB3>ʾ", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
NotepadMainFrame.this.dispose();
NotepadMainFrame.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
}
/*===================================================================*/
/*===============================4====================================*/
/**
* <20>½<EFBFBD><C2BD>ļ<EFBFBD><C4BC><EFBFBD>ֻ<EFBFBD>иĹ<D0B8><C4B9>ĺͱ<C4BA><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
*/
private void newFile() {
if(flag==0 || flag==1){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1
return;
}else if(flag==2 && this.currentPath==null){ //<2F>޸ĺ<DEB8>
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
this.saveAs(); //<2F><><EFBFBD><EFBFBD>Ϊ
}else if(result==JOptionPane.NO_OPTION){
this.textArea.setText("");
this.setTitle("<22>ޱ<EFBFBD><DEB1><EFBFBD>");
flag=1;
}
return;
}else if(flag==2 && this.currentPath!=null ){
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>Ϊ3<CEAA><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1>浽"+this.currentPath+"?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
this.save(); //ֱ<>ӱ<EFBFBD><D3B1><EFBFBD><E6A3AC>·<EFBFBD><C2B7>
}else if(result==JOptionPane.NO_OPTION){
this.textArea.setText("");
this.setTitle("<22>ޱ<EFBFBD><DEB1><EFBFBD>");
flag=1;
}
}else if(flag==3){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
this.textArea.setText("");
flag=1;
this.setTitle("<22>ޱ<EFBFBD><DEB1><EFBFBD>");
}
}
/*===================================================================*/
/*===============================5====================================*/
/**
* <20><><EFBFBD><EFBFBD>Ϊ
*/
private void saveAs() {
//<2F>򿪱<EFBFBD><F2BFAAB1><EFBFBD><EFBFBD><EFBFBD>
JFileChooser choose=new JFileChooser();
//ѡ<><D1A1><EFBFBD>ļ<EFBFBD>
int result=choose.showSaveDialog(this);
if(result==JFileChooser.APPROVE_OPTION){
//ȡ<><C8A1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>[<5B>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
File file=choose.getSelectedFile();
FileWriter fw=null;
//<2F><><EFBFBD><EFBFBD>
try {
fw=new FileWriter(file);
fw.write(textArea.getText());
currentFileName=file.getName();
currentPath=file.getAbsolutePath();
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>٣<EFBFBD><D9A3><EFBFBD>Ҫд
fw.flush();
this.flag=3;
this.setTitle(currentPath);
} catch (IOException e1) {
e1.printStackTrace();
}finally{
try {
if(fw!=null) fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
/*===================================================================*/
/*===============================6====================================*/
/**
* <20><><EFBFBD><EFBFBD>
*/
private void save() {
if(this.currentPath==null){
this.saveAs();
if(this.currentPath==null){
return;
}
}
FileWriter fw=null;
//<2F><><EFBFBD><EFBFBD>
try {
fw=new FileWriter(new File(currentPath));
fw.write(textArea.getText());
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>٣<EFBFBD><D9A3><EFBFBD>Ҫд
fw.flush();
flag=3;
this.setTitle(this.currentPath);
} catch (IOException e1) {
e1.printStackTrace();
}finally{
try {
if(fw!=null) fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/*===================================================================*/
/*================================7===================================*/
/**
* <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
*/
private void openFile() {
if(flag==2 && this.currentPath==null){
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ĵ<EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
this.saveAs();
}
}else if(flag==2 && this.currentPath!=null){
//2<><32><EFBFBD><EFBFBD><EFBFBD>򿪵<EFBFBD><F2BFAAB5>ļ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
int result=JOptionPane.showConfirmDialog(NotepadMainFrame.this, "<22>Ƿ񽫸<C7B7><F1BDABB8>ı<EFBFBD><C4B1>浽"+this.currentPath+"?", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if(result==JOptionPane.OK_OPTION){
this.save();
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
JFileChooser choose=new JFileChooser();
//ѡ<><D1A1><EFBFBD>ļ<EFBFBD>
int result=choose.showOpenDialog(this);
if(result==JFileChooser.APPROVE_OPTION){
//ȡ<><C8A1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
File file=choose.getSelectedFile();
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4>ڵ<EFBFBD><DAB5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
currentFileName=file.getName();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ȫ·<C8AB><C2B7>
currentPath=file.getAbsolutePath();
flag=3;
this.setTitle(this.currentPath);
BufferedReader br=null;
try {
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>[<5B>ַ<EFBFBD><D6B7><EFBFBD>]
InputStreamReader isr=new InputStreamReader(new FileInputStream(file),"GBK");
br=new BufferedReader(isr);//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
StringBuffer sb=new StringBuffer();
String line=null;
while((line=br.readLine())!=null){
sb.append(line+SystemParam.LINE_SEPARATOR);
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>[<5B><><EFBFBD><EFBFBD>]
textArea.setText(sb.toString());
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally{
try {
if(br!=null) br.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
/*================================================================*/
/*=============================9===================================*/
public void Print()
{
try{
p = getToolkit().getPrintJob(this,"ok",null);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Printfjob <20><><EFBFBD><EFBFBD> p
g = p.getGraphics();//p <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><D3A1> Graphics <20>Ķ<EFBFBD><C4B6><EFBFBD>
//g.translate(120,200);//<2F>ı<EFBFBD><C4B1><EFBFBD><E9BDA8>λ<EFBFBD><CEBB>
this.textArea.printAll(g);
p.end();//<2F>ͷŶ<CDB7><C5B6><EFBFBD> g
}
catch(Exception a){
}
}
/*================================================================*/
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
public void cut(){
copy();
//<2F><><EFBFBD>ǿ<EFBFBD>ʼλ<CABC><CEBB>
int start = this.textArea.getSelectionStart();
//<2F><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD>λ<EFBFBD><CEBB>
int end = this.textArea.getSelectionEnd();
//ɾ<><C9BE><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
this.textArea.replaceRange("", start, end);
}
public void copy(){
//<2F>϶<EFBFBD>ѡȡ<D1A1>ı<EFBFBD>
String temp = this.textArea.getSelectedText();
//<2F>ѻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD><CCB3>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
StringSelection text = new StringSelection(temp);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>
this.clipboard.setContents(text, null);
}
public void paste(){
//Transferable<6C>ӿڣ<D3BF><DAA3>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Transferable contents = this.clipboard.getContents(this);
//DataFalvor<6F><72><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>ܰѼ<DCB0><D1BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataFlavor flavor = DataFlavor.stringFlavor;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
if(contents.isDataFlavorSupported(flavor)){
String str;
try {//<2F><>ʼת<CABC><D7AA>
str=(String)contents.getTransferData(flavor);
//<2F><><EFBFBD><EFBFBD>Ҫճ<D2AA><D5B3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һЩ<D2BB>ַ<EFBFBD>
if(this.textArea.getSelectedText()!=null){
//<2F><>λ<EFBFBD><CEBB>ѡ<EFBFBD><D1A1><EFBFBD>ַ<EFBFBD><D6B7>Ŀ<EFBFBD>ʼλ<CABC><CEBB>
int start = this.textArea.getSelectionStart();
//<2F><>λ<EFBFBD><CEBB>ѡ<EFBFBD><D1A1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ĩβλ<CEB2><CEBB>
int end = this.textArea.getSelectionEnd();
//<2F><>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>ѡ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
this.textArea.replaceRange(str, start, end);
}else{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TextArea<65><61>λ<EFBFBD><CEBB>
int mouse = this.textArea.getCaretPosition();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>λ<EFBFBD><CEBB>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
this.textArea.insert(str, mouse);
}
} catch(UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch(IllegalArgumentException e){
e.printStackTrace();
}
}
}
public void mySearch() {
final JDialog findDialog = new JDialog(this, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻", true);
Container con = findDialog.getContentPane();
con.setLayout(new FlowLayout(FlowLayout.LEFT));
JLabel searchContentLabel = new JLabel("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(N) :");
JLabel replaceContentLabel = new JLabel("<22>滻Ϊ(P)<29><> :");
final JTextField findText = new JTextField(22);
final JTextField replaceText = new JTextField(22);
final JCheckBox matchcase = new JCheckBox("<22><><EFBFBD>ִ<EFBFBD>Сд");
ButtonGroup bGroup = new ButtonGroup();
final JRadioButton up = new JRadioButton("<22><><EFBFBD><EFBFBD>(U)");
final JRadioButton down = new JRadioButton("<22><><EFBFBD><EFBFBD>(D)");
down.setSelected(true);
bGroup.add(up);
bGroup.add(down);
JButton searchNext = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>(F)");
JButton replace = new JButton("<22>滻(R)");
final JButton replaceAll = new JButton(<><C8AB><EFBFBD>滻(A)");
searchNext.setPreferredSize(new Dimension(110, 22));
replace.setPreferredSize(new Dimension(110, 22));
replaceAll.setPreferredSize(new Dimension(110, 22));
// "<22>滻"<22><>ť<EFBFBD><C5A5><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
replace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (replaceText.getText().length() == 0 && textArea.getSelectedText() != null)
textArea.replaceSelection("");
if (replaceText.getText().length() > 0 && textArea.getSelectedText() != null)
textArea.replaceSelection(replaceText.getText());
}
});
// "<22>滻ȫ<E6BBBB><C8AB>"<22><>ť<EFBFBD><C5A5><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
replaceAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.setCaretPosition(0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><E0BCAD><EFBFBD><EFBFBD>ͷ
int a = 0, b = 0, replaceCount = 0;
if (findText.getText().length() == 0) {
JOptionPane.showMessageDialog(findDialog, "<22><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!", "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
findText.requestFocus(true);
return;
}
while (a > -1) {
int FindStartPos = textArea.getCaretPosition();
String str1, str2, str3, str4, strA, strB;
str1 = textArea.getText();
str2 = str1.toLowerCase();
str3 = findText.getText();
str4 = str3.toLowerCase();
if (matchcase.isSelected()) {
strA = str1;
strB = str3;
} else {
strA = str2;
strB = str4;
}
if (up.isSelected()) {
if (textArea.getSelectedText() == null) {
a = strA.lastIndexOf(strB, FindStartPos - 1);
} else {
a = strA.lastIndexOf(strB, FindStartPos - findText.getText().length() - 1);
}
} else if (down.isSelected()) {
if (textArea.getSelectedText() == null) {
a = strA.indexOf(strB, FindStartPos);
} else {
a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);
}
}
if (a > -1) {
if (up.isSelected()) {
textArea.setCaretPosition(a);
b = findText.getText().length();
textArea.select(a, a + b);
} else if (down.isSelected()) {
textArea.setCaretPosition(a);
b = findText.getText().length();
textArea.select(a, a + b);
}
} else {
if (replaceCount == 0) {
JOptionPane.showMessageDialog(findDialog, "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>!", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(findDialog, "<22>ɹ<EFBFBD><C9B9>滻" + replaceCount + "<22><>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!", "<22><EFBFBD>ɹ<EFBFBD>", JOptionPane.INFORMATION_MESSAGE);
}
}
if (replaceText.getText().length() == 0 && textArea.getSelectedText() != null) {
textArea.replaceSelection("");
replaceCount++;
}
if (replaceText.getText().length() > 0 && textArea.getSelectedText() != null) {
textArea.replaceSelection(replaceText.getText());
replaceCount++;
}
}// end while
}
}); /* "<22>滻ȫ<E6BBBB><C8AB>"<22><>ť<EFBFBD><C5A5><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
// "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>"<22><>ť<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
searchNext.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int a = 0, b = 0;
int FindStartPos = textArea.getCaretPosition();
String str1, str2, str3, str4, strA, strB;
str1 = textArea.getText();
str2 = str1.toLowerCase();
str3 = findText.getText();
str4 = str3.toLowerCase();
// "<22><><EFBFBD>ִ<EFBFBD>Сд"<22><>CheckBox<6F><78>ѡ<EFBFBD><D1A1>
if (matchcase.isSelected()) {
strA = str1;
strB = str3;
} else {
strA = str2;
strB = str4;
}
if (up.isSelected()) {
if (textArea.getSelectedText() == null) {
a = strA.lastIndexOf(strB, FindStartPos - 1);
} else {
a = strA.lastIndexOf(strB, FindStartPos - findText.getText().length() - 1);
}
} else if (down.isSelected()) {
if (textArea.getSelectedText() == null) {
a = strA.indexOf(strB, FindStartPos);
} else {
a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);
}
}
if (a > -1) {
if (up.isSelected()) {
textArea.setCaretPosition(a);
b = findText.getText().length();
textArea.select(a, a + b);
} else if (down.isSelected()) {
textArea.setCaretPosition(a);
b = findText.getText().length();
textArea.select(a, a + b);
}
} else {
JOptionPane.showMessageDialog(null, "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>!", "<22><><EFBFBD>±<EFBFBD>", JOptionPane.INFORMATION_MESSAGE);
}
}
});/* "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>"<22><>ť<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
// "ȡ<><C8A1>"<22><>ť<EFBFBD><C5A5><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
JButton cancel = new JButton(<><C8A1>");
cancel.setPreferredSize(new Dimension(110, 22));
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
findDialog.dispose();
}
});
// <20><><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻"<22>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
JPanel bottomPanel = new JPanel();
JPanel centerPanel = new JPanel();
JPanel topPanel = new JPanel();
JPanel direction = new JPanel();
direction.setBorder(BorderFactory.createTitledBorder("<22><><EFBFBD><EFBFBD> "));
direction.add(up);
direction.add(down);
direction.setPreferredSize(new Dimension(170, 60));
JPanel replacePanel = new JPanel();
replacePanel.setLayout(new GridLayout(2, 1));
replacePanel.add(replace);
replacePanel.add(replaceAll);
topPanel.add(searchContentLabel);
topPanel.add(findText);
topPanel.add(searchNext);
centerPanel.add(replaceContentLabel);
centerPanel.add(replaceText);
centerPanel.add(replacePanel);
bottomPanel.add(matchcase);
bottomPanel.add(direction);
bottomPanel.add(cancel);
con.add(topPanel);
con.add(centerPanel);
con.add(bottomPanel);
// <20><><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻"<22>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD>ɸ<EFBFBD><C9B8>Ĵ<EFBFBD>С(<28><>)<29><>λ<EFBFBD>úͿɼ<CDBF><C9BC><EFBFBD>
findDialog.setSize(410, 210);
findDialog.setResizable(false);
findDialog.setLocation(230, 280);
findDialog.setVisible(true);
}
}