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

📄 notebook.java

📁 java写的一个编辑工具,类似文本编辑器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Class.java * * Created on 2005年2月27日, 下午1:51 */ import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*; import javax.swing.text.*; import java.io.*; import java.awt.datatransfer.*; import javax.swing.text.rtf.RTFEditorKit;import java.util.*;/** * * @author  Administrator */public class NoteBook extends JPanel{    private JTextPane  jta=new JTextPane();    private JScrollPane jsp=new JScrollPane(jta);            private JMenuBar jmb=new JMenuBar();    private JMenu file=new JMenu("文件");    private JMenu edit=new JMenu("编辑");    private JMenu view=new JMenu("视图");    private JMenu help=new JMenu("帮助");            private Clipboard clipbd = getToolkit().getSystemClipboard();         private JMenuItem jmi;    public int enternum,changeflag=0 ;    private String openFile,saveFile;    private javax.swing.Timer timer=new javax.swing.Timer(180000,new Updat());    private String[] keyWord={"abstract","boolean","break","byte","case","catch","char","class",                                "const","continue","default","do","double","else","extends","final",                                "finally","float","for","goto","if","implements","import","instanceof",                                "int","interface","long","native","new","package","private","protected",                                "public","return","short","static","strictfp","super","swich",                                "synchronized","this","throw","throws","transient","try","void",                                "volatile","while"};       private static MutableAttributeSet keyAttr,normalAttr;        private StyleContext m_context;    private StyledDocument m_doc= jta.getStyledDocument();        public NoteBook()     {                             setLayout(new BorderLayout());        jmb.add(file);         jmb.add(edit);        jmb.add(view);        jmb.add(help);        add(jmb, BorderLayout.NORTH);                file.add(jmi=new JMenuItem("新建", KeyEvent.VK_N));        jmi.addActionListener(new NewF());        file.add(jmi=new JMenuItem("打开", KeyEvent.VK_O));        jmi.addActionListener(new OpenF());        file.add(jmi=new JMenuItem("保存", KeyEvent.VK_S));        jmi.addActionListener(new SaveF());        file.add(jmi=new JMenuItem("另存为",KeyEvent.VK_F1));        jmi.addActionListener(new LSave());        file.addSeparator();                 file.add(jmi=new JMenuItem("退出",KeyEvent.VK_X));        jmi.addActionListener(new ExitF());                edit.add(jmi=new JMenuItem("剪切",KeyEvent.VK_T));        jmi.addActionListener(new CutT());        edit.add(jmi=new JMenuItem("复制",KeyEvent.VK_C));        jmi.addActionListener(new CopyT());        edit.add(jmi=new JMenuItem("粘贴",KeyEvent.VK_P));        jmi.addActionListener(new PasteT());        edit.add(jmi=new JMenuItem("删除",KeyEvent.VK_D));        jmi.addActionListener(new DeleteT());        edit.addSeparator();                edit.add(jmi=new JMenuItem("查找",KeyEvent.VK_F));        jmi.addActionListener(new Find());        edit.add(jmi=new JMenuItem("查找下一个",KeyEvent.VK_N));        jmi.addActionListener(new FindNext());        edit.add(jmi=new JMenuItem("替换",KeyEvent.VK_R));        jmi.addActionListener(new Replace());        edit.addSeparator();        edit.add(jmi=new JMenuItem("全选",KeyEvent.VK_A));        jmi.addActionListener(new SelAll());                view.add(jmi=new JMenuItem("黑体",KeyEvent.VK_F3));        jmi.addActionListener(new SetBold());        view.add(jmi=new JMenuItem("颜色...",KeyEvent.VK_F4));        jmi.addActionListener(new SetColor());                help.add(jmi=new JMenuItem("关于NoteBook",KeyEvent.VK_H));        jmi.addActionListener(new Help());                        add(jsp, BorderLayout.CENTER);                 jta.addKeyListener(new KeyAction(jta));                m_context = new StyleContext();        m_doc = new DefaultStyledDocument(m_context);        jta.setDocument(m_doc);                keyAttr = new SimpleAttributeSet();        StyleConstants.setForeground(keyAttr, Color.blue);        StyleConstants.setBold(keyAttr,true);        normalAttr = new SimpleAttributeSet();        StyleConstants.setForeground(normalAttr, Color.black);        StyleConstants.setBold(normalAttr,false);                timer.start();                 }        protected static final class Close extends WindowAdapter     {        public void windowClosing(WindowEvent e)        {                        System.exit(0);        }    }    //新建文件    class NewF implements ActionListener    {        public void actionPerformed(ActionEvent e)         {                         if(changeflag==0)            {                                             jta.setText("");                return;            }            if(saveFile==null||changeflag==1)            {                String message="文件未保存!是否保存此文件?";                int result=JOptionPane.showConfirmDialog(null,message);                if (result == JOptionPane.YES_OPTION)                {                    if(saveFile==null)                    {                        SaveF savefile=new SaveF();                        savefile.actionPerformed(e);                    }                    else                    {                        Updat update=new Updat();                        update.actionPerformed(e);                    }                    jta.setText("");                    saveFile=null;                    changeflag=0;                }                if (result == JOptionPane.NO_OPTION)                {                    jta.setText("");                    saveFile=null;                     changeflag=0;                }                if(result==JOptionPane.CANCEL_OPTION){}            }            else            {                jta.setText("");                saveFile=null;                 changeflag=0;            }                                                      }     }    //打开文件    class OpenF implements ActionListener    {                                 public void actionPerformed(ActionEvent e)        {            if(changeflag==1)            {                String message="文件未保存!是否保存此文件?";                int result=JOptionPane.showConfirmDialog(null,message);                if (result == JOptionPane.YES_OPTION)                {                    if(saveFile==null)                    {                        SaveF savefile=new SaveF();                        savefile.actionPerformed(e);                    }                    else                    {                        Updat update=new Updat();                        update.actionPerformed(e);                    }                                                          changeflag=0;                }                if (result == JOptionPane.NO_OPTION)                {                                                          changeflag=0;                }                if(result==JOptionPane.CANCEL_OPTION)                {                    return;                }            }            JFileChooser jfc=new JFileChooser();            int reVal=jfc.showDialog(NoteBook.this,"打开");            if(reVal==JFileChooser.APPROVE_OPTION)            {                openFile=jfc.getSelectedFile().getPath();                if(openFile==null)                {                                       return;                }                try                {                    Reader in=new FileReader(openFile);                    jta.read(in,null);                                    }                catch(IOException ioe)                {                     System.err.println("IOException: " + ioe.getMessage());                }            }            else            {                  changeflag=1;                return;                            }                                            String text;            text=jta.getText();                       TextParse(text);                                                            saveFile=openFile;            changeflag=0;        }        //打开文档扫描        public void TextParse(String text)        {                       if(text.length() == 0)                return;            else            {                                StringTokenizer st = new StringTokenizer(text, "\t,\n,\r,, ,;,(,),[,],{,}, ,");                int start = 0,pst=0;                                int enterNumber = 0; //文章中回车数目                                                      m_doc.setCharacterAttributes(start, text.length(),normalAttr, true);                while(st.hasMoreTokens())                {                    int i = 0;                    enterNumber = 0;                    String data;                    data = st.nextToken();                                       if ( data == null) return;                    for (i = 0; i < keyWord.length; i++ )                     {                        if (data.equals(keyWord[i]))                        {                            if(pst==0)                            {                                pst=text.indexOf(data);                                                            }                            else                                pst=text.indexOf(data,pst+data.length());                                                        for(int j=0;j<pst;j++)                            {                                if(text.charAt(j)=='\n')enterNumber++;                                                           }                                                                   //设置关键字显示属性                                 m_doc = jta.getStyledDocument();                                        jta.getStyledDocument().setCharacterAttributes(pst-enterNumber, data.length(),keyAttr,false);                                              }                      }                 }                           }       }            }    //保存文件    class SaveF implements ActionListener    {        public void actionPerformed(ActionEvent e)        {            if(saveFile==null)            {                JFileChooser jfc = new JFileChooser();                             int reVal = jfc.showSaveDialog(NoteBook.this);                if(reVal == JFileChooser.CANCEL_OPTION)return;                if(reVal == JFileChooser.APPROVE_OPTION)                 {                     saveFile = jfc.getSelectedFile().getPath();                    if(saveFile == null)                     {                         return;                     }                     else                    {                       String docToSave = jta.getText();                       if(docToSave != null)                        {                            FileOutputStream fstrm = null;                             BufferedOutputStream ostrm = null;                             try                            {                                fstrm = new FileOutputStream(saveFile);                                 ostrm = new BufferedOutputStream(fstrm);                                 byte[] bytes = null;                                 try                                {                                    bytes = docToSave.getBytes();                                 }                                catch(Exception e1)                                {                                    e1.printStackTrace();                                 }                                ostrm.write(bytes);                             }                            catch(IOException ioe1)                            {                                System.err.println("IOException: " +  ioe1.getMessage());                            }                            finally                            {                                try                                {                                    ostrm.flush();                                     fstrm.close();                                     ostrm.close();                                 }                                catch(IOException ioe2)                                {                                    System.err.println("IOException: " + ioe2.getMessage());                                }                            }                       }                    }                }                else                {                    try                    {                        Writer out=new FileWriter(saveFile);                        jta.write(out);                    }                    catch(Exception ex)                    {                        System.out.println("Exception:"+ex.getMessage());                    }                            }            }            changeflag=0;        }    }    //另存为    class LSave implements ActionListener    {        public void actionPerformed(ActionEvent e)        {            String lsaveFile;            JFileChooser jfc = new JFileChooser();                         int reVal = jfc.showSaveDialog(NoteBook.this);            if(reVal == JFileChooser.APPROVE_OPTION)             {                  lsaveFile = jfc.getSelectedFile().getPath();                 if(lsaveFile == null)                  {                      return;                  }                   else                 {                     String docToSave = jta.getText();                     if(docToSave != null)                      {                          FileOutputStream fstrm = null;                           BufferedOutputStream ostrm = null;                           try                          {                              fstrm = new FileOutputStream(lsaveFile);                               ostrm = new BufferedOutputStream(fstrm);                               byte[] bytes = null;                               try                              {                                    bytes = docToSave.getBytes();                               }                              catch(Exception e1)                              {                                    e1.printStackTrace();                               }                              ostrm.write(bytes);                           }                          catch(IOException ioe1)                          {                                System.err.println("IOException: " +  ioe1.getMessage());                          }                          finally                          {                                try                                {                                    ostrm.flush();                                     fstrm.close();                                     ostrm.close();                                 }                                catch(IOException ioe2)                                {                                    System.err.println("IOException: " + ioe2.getMessage());                                }                          }                     }                  }            }                    }    }                                                                                                                                                                                                                                                      //退出    class ExitF implements ActionListener    {        public void actionPerformed(ActionEvent e)        {            if(changeflag==0)            {                                              timer.stop();                System.exit(0);                 return;            }            if(saveFile==null||changeflag==1)            {                String message="文件未保存!是否保存此文件?";                int result=JOptionPane.showConfirmDialog(null,message);                if (result == JOptionPane.YES_OPTION)                {                    if(saveFile==null)                    {

⌨️ 快捷键说明

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