精华内容
下载资源
问答
  • Java 复制Word文档

    2020-04-24 16:28:27
    本文介绍在Java程序中如何复制Word文档复制方法均以带格式复制,代码示例将从以下要点展示: 复制Word正文内容,可支持包括文本、图片、表格、超链接、书签、批注、形状、编号列表、脚注、尾注等在内的多种元素。...

    本文介绍在Java程序中如何复制Word文档。复制方法均以带格式复制,代码示例将从以下要点展示:

    • 复制Word正文内容,可支持包括文本、图片、表格、超链接、书签、批注、形状、编号列表、脚注、尾注等在内的多种元素。复制时,可复制整篇文档内容和复制指定段落内容
    • 复制Word页眉页脚,包括页眉页脚中的文本、图片、页码域等等
    • 复制Word水印效果,包括文本水印、图片水印

    工具:Free Spire.Doc for Java(免费版)可下载jar包,并解压将lib文件夹下的jar文件导入Java程序,或通过maven仓库下载导入。参考如下导入效果:

    用于测试的两个文档如下,将左边文档内容复制到右边的文档:

     

    【示例1】复制Word正文内容

    1.1 复制整篇文档内容

    import com.spire.doc.*;
    
    public class CopyDoc {
        public static void main(String[] args) {
            //加载文档1
            Document doc1 = new Document();
            doc1.loadFromFile("test.docx");
    
            //加载文档2
            Document doc2 = new Document();
            doc2.loadFromFile("target.docx");
    
            //遍历文档1中的所有子对象
            for (int i = 0; i < doc1.getSections().getCount(); i++) {
                Section section = doc1.getSections().get(i);
    
                for( int j = 0;j< section.getBody().getChildObjects().getCount();j++)
                {
                    Object object = section.getBody().getChildObjects().get(j);
    
                    //复制文档1中的正文内容添加到文档2
                    doc2.getSections().get(0).getBody().getChildObjects().add(((DocumentObject) object).deepClone());
                }
            }
    
            //保存文档2
            doc2.saveToFile("CopyDoc.docx", FileFormat.Docx_2013);
            doc2.dispose();
        }
    }
    

    复制效果(这里复制的效果不含水印、页眉页脚等内容):

    1.2 复制指定段落内容

    import com.spire.doc.*;
    
    import com.spire.doc.documents.Paragraph;
    
    
    public class CopyPara {
        public static void main(String[] args) {
            //加载文档1
            Document doc1 = new Document();
            doc1.loadFromFile("test.docx");
    
            //获取文档1中的第三段
            Section section1 = doc1.getSections().get(0);
            Paragraph paragraph = section1.getParagraphs().get(2);
    
            //加载文档2,获取section
            Document doc2 = new Document();
            doc2.loadFromFile("target.docx");
            Section section2 = doc2.getSections().get(0);
    
            //复制文档1中段落,添加到文档2
            Paragraph newparagraph = (Paragraph) paragraph.deepClone();
            section2.getParagraphs().add(newparagraph);
    
            //保存文档2
            doc2.saveToFile("CopyPara.docx",FileFormat.Docx_2013);
            doc2.dispose();
        }
    }
    

    段落复制结果:

    【示例2】复制Word页眉页脚

    import com.spire.doc.*;
    
    public class CopyHeaderFooter {
        public static void main(String[] args) {
            //加载文档1
            Document doc1 = new Document();
            doc1.loadFromFile("test.docx");
    
            //获取section
            Section section1 = doc1.getSections().get(0);
            //获取文档1的页眉页脚
            HeaderFooter header = section1.getHeadersFooters().getHeader();
            HeaderFooter footer = section1.getHeadersFooters().getFooter();
    
            //加载文档2
            Document doc2 = new Document();
            doc2.loadFromFile("target.docx");
    
            //遍历文档2的section
            for (int i = 0; i< doc2.getSections().getCount();i++)
            {
                Section section2 = doc2.getSections().get(i);
                //遍历页眉中的对象
                for(int j = 0 ; j< header.getChildObjects().getCount();j++)
                {
                    //获取页眉中的所有子对象
                    Object object1 = header.getChildObjects().get(j);
                    //复制文档1的页眉添加到文档2
                    section2.getHeadersFooters().getHeader().getChildObjects().add(((DocumentObject) object1).deepClone());
                }
    
                //同理复制页脚
                for(int z = 0 ; z< footer.getChildObjects().getCount();z++)
                {
                    Object object2 = footer.getChildObjects().get(z);
                    section2.getHeadersFooters().getFooter().getChildObjects().add(((DocumentObject) object2).deepClone());
                }
            }
    
            //保存文档2
            doc2.saveToFile("CopyHeaderFooter.docx",FileFormat.Docx_2013);
            doc2.dispose();
        }
    }
    

    页眉复制效果:

    页脚复制效果:

    【示例3】复制Word水印

    import com.spire.doc.*;
    
    public class CopyWatermark {
        public static void main(String[] args) {
            //加载文档1
            Document doc1 = new Document();
            doc1.loadFromFile("test.docx");
    
            //加载文档2
            Document doc2 = new Document();
            doc2.loadFromFile("target.docx");
    
            //获取文档1的水印效果,设置到文档2
            doc2.setWatermark(doc1.getWatermark());
    
            //保存文档2
            doc2.saveToFile("CopyWatermark.docx",FileFormat.Docx_2013);
            doc2.dispose();
        }
    }
    

    水印复制效果(此方法均适用于复制文本水印或图片水印):

    注:对于文档结构比较复制的Word,可综合以上方法来进行复制,查看复制效果。

     

    (完)

    展开全文
  • JAVA中IO流字符流复制文本文档性能优化版 1、代码实现: package rwStream_practise; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import ...

    JAVA中IO流字符流复制文本文档性能优化版

    1、代码实现:
    package rwStream_practise;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.Writer;

    public class RW_Stream {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    
    	Reader reader=null;
    	Writer writer=null;
    	try {
    		//输入流将文本文件从D盘输入到内存
    		reader=new FileReader(new File("D:\\蓝桥.txt"));
    		//输出流将文本文件从内存输出到E盘
    		writer=new FileWriter(new File("D:\\蓝桥3.txt"));
    		/*
    		 * 接下来需要一个字符一个字符的去读,Java中的处理机制会将文件的 的每一个字符转化成字节,再转化成一个int型的数字。
    		 */
    		char[] c=new char[100];
    		while(true) {
    		 int i=	reader.read(c);
             //当这个int型数字变为-1的时候,表明读取结束			 
    			if(i==-1) {
    				break;
    			}
    			System.out.println(new String(c));
    			//读完以后就开始往里面写了
    			writer.write(c,0,i);
    		}
    	} catch (FileNotFoundException e) {
    		System.out.println("你输入的文件路径是错误的!");
    		e.printStackTrace();
    	} catch (IOException e) {
    		System.out.println("读取异常!");
    		e.printStackTrace();
    	}
    	//使用完IO流之后一定要关闭,可以使用finally类去关闭
        finally {
       	 if(reader!=null) {
       		 try {
    			reader.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
       	 }
       	if(writer!=null) {
    		try {
    			writer.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	  }
        }
     
    }
    

    }

    展开全文
  • 一旦运行程序,如果dest.txt不存在,将自行创建这个文本文档,再将src.txt中的内容复制到dest.txt 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileNotFoundException;...

    src.txt放在工程目录下,dest.txt可创建,也可不创建。一旦运行程序,如果dest.txt不存在,将自行创建这个文本文档,再将src.txt中的内容复制到dest.txt

     

     1 import java.io.File;
     2 import java.io.FileInputStream;
     3 import java.io.FileNotFoundException;
     4 import java.io.FileOutputStream;
     5 import java.io.IOException;
     6 import java.io.InputStream;
     7 import java.io.OutputStream;
     8 
     9 public class IOTest04 {
    10 
    11     public static void main(String[] args) {
    12         copy("src.txt", "dest.txt");
    13     }
    14     
    15     public static void copy(String srcPath, String destPath) {
    16         File src = new File(srcPath);
    17         File dest = new File(destPath);
    18         InputStream is = null;
    19         OutputStream os = null;
    20         
    21         try {
    22             is = new FileInputStream(src);
    23             os = new FileOutputStream(dest, false);
    24             
    25             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
    26             int length = -1;
    27             while ((length = is.read(buffer)) != -1) {
    28                 os.write(buffer, 0, length);
    29                 os.flush();
    30             }
    31         } catch (FileNotFoundException e) {
    32             e.printStackTrace();
    33         } catch (IOException e) {
    34             e.printStackTrace();
    35         } finally {
    36             try {
    37                 if (os != null) {
    38                     os.close();
    39                     System.out.println("OutputStream Closed.");
    40                 }
    41             } catch (IOException e) {
    42                 e.printStackTrace();
    43             }
    44             try {
    45                 if (is != null) {
    46                     is.close();
    47                     System.out.println("InputStream Closed.");
    48                 }
    49             } catch (IOException e) {
    50                 e.printStackTrace();
    51             }
    52         }
    53     }
    54 }

     

    ----    ----    ----    ----    ----    ----    ----    ----

    读取文本文档A中的内容,先进行“加密”,将加密的内容写入到另一个文本文档B;完成加密和写入之后,再将文本文档B中(已加密)的内容复制、并覆盖文本文档A中原本的内容,删除文本文档B。

     1 import java.io.File;
     2 import java.io.FileInputStream;
     3 import java.io.FileNotFoundException;
     4 import java.io.FileOutputStream;
     5 import java.io.IOException;
     6 import java.io.InputStream;
     7 import java.io.OutputStream;
     8 
     9 public class Encrypt {
    10 
    11     public static void main(String[] args) {
    12         encrypt("src.txt", 1);
    13     }
    14     
    15     public static void encrypt(String srcPath, int password) {
    16         File src = new File(srcPath);
    17         File dest = new File(src.getParent(), ("temp" + src.getName()));
    18         InputStream is = null;
    19         OutputStream os = null;
    20         
    21         try {
    22             is = new FileInputStream(src);
    23             os = new FileOutputStream(dest);
    24             
    25             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
    26             int length = -1;
    27             while ((length = is.read(buffer)) != -1) {
    28                 for (int i = 0; i < length; ++i) {
    29                     buffer[i] = (byte) (buffer[i] + password);
    30                 }
    31                 os.write(buffer, 0, length);
    32                 os.flush();
    33             }
    34         } catch (FileNotFoundException e) {
    35             e.printStackTrace();
    36         } catch (IOException e) {
    37             e.printStackTrace();
    38         } finally {
    39             try {
    40                 if (os != null) {
    41                     os.close();
    42                 }
    43             } catch (IOException e) {
    44                 e.printStackTrace();
    45             }
    46             try {
    47                 if (is != null) {
    48                     is.close();
    49                 }
    50             } catch (IOException e) {
    51                 e.printStackTrace();
    52             }
    53         }
    54         
    55         try {
    56             is = new FileInputStream(dest);
    57             os = new FileOutputStream(src);
    58             
    59             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
    60             int length = -1;
    61             while ((length = is.read(buffer)) != -1) {
    62                 os.write(buffer, 0, length);
    63                 os.flush();
    64             }
    65         } catch (FileNotFoundException e) {
    66             e.printStackTrace();
    67         } catch (IOException e) {
    68             e.printStackTrace();
    69         } finally {
    70             try {
    71                 if (os != null) {
    72                     os.close();
    73                 }
    74             } catch (IOException e) {
    75                 e.printStackTrace();
    76             }
    77             try {
    78                 if (is != null) {
    79                     is.close();
    80                 }
    81             } catch (IOException e) {
    82                 e.printStackTrace();
    83             }
    84         }
    85         
    86         dest.delete();
    87     }
    88 }

     

    文本文档A中的内容:

     

    对每一个字符执行+1(实际就是将字符所对应的编码进行+1)的操作,之后变成:

     

    ----    ----    ----    ----    ----    ----    ----    ----

    分解一

    16         File src = new File(srcPath);
    17         File dest = new File(src.getParent(), ("temp" + src.getName()));

    getParent() - 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

    getName() - 返回由此抽象路径名表示的文件或目录的名称。

     

    绝对路径名的定义与系统有关。在 UNIX 系统上,如果路径名的前缀是 "/",那么该路径名是绝对路径名。在 Microsoft Windows 系统上,如果路径名的前缀是后跟 "\\" 的盘符,或者是 "\\\\",那么该路径名是绝对路径名。

     1 import java.io.File;
     2 
     3 public class IO_Test01 {
     4 
     5     public static void main(String[] args) {
     6         File src = null;
     7         File dest = null;
     8         
     9         // Relative path
    10         src = new File("src.txt");
    11         dest = new File(src.getParent(), ("temp" + src.getName()));
    12 
    13         System.out.println("Is absolute path: " + src.isAbsolute());
    14         System.out.println("src's parent: " + src.getParent());
    15         System.out.println("src's name: " + src.getName());
    16         
    17         System.out.println("dest's parent: " + dest.getParent());
    18         System.out.println("dest's name: " + dest.getName());
    19         System.out.println("--------");
    20         
    21         // Absolute path
    22         src = new File("E:/Java/workspace/IO_Study02/src.txt");
    23         dest = new File(src.getParent(), ("temp" + src.getName()));
    24 
    25         System.out.println("Is absolute path: " + src.isAbsolute());
    26         System.out.println("src's parent: " + src.getParent());
    27         System.out.println("src's name: " + src.getName());
    28         
    29         System.out.println("dest's parent: " + dest.getParent());
    30         System.out.println("dest's name: " + dest.getName());
    31     }
    32 }

     

    输出结果:

    Is absolute path: false
    src's parent: null
    src's name: src.txt
    dest's parent: null
    dest's name: tempsrc.txt
    --------
    Is absolute path: true
    src's parent: E:\Java\workspace\IO_Study02
    src's name: src.txt
    dest's parent: E:\Java\workspace\IO_Study02
    dest's name: tempsrc.txt

     

    ----    ----    ----    ----    ----    ----    ----    ----

    分解二

    25             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
    26             int length = -1;
    27             while ((length = is.read(buffer)) != -1) {
    28                 for (int i = 0; i < length; ++i) {
    29                     buffer[i] = (byte) (buffer[i] + password);
    30                 }
    31                 os.write(buffer, 0, length);
    32                 os.flush();
    33             }

     

    其中的28~30行很好理解,这里不解释。

    关键在于方法read(byte[] b)、write(byte[] b, int off, int len)。

    public int read(byte[] b) - 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。

     1 import java.io.File;
     2 import java.io.FileInputStream;
     3 import java.io.FileNotFoundException;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 
     7 public class IO_Test01 {
     8 
     9     public static void main(String[] args) {
    10         File src = new File("E:/Java/workspace/IO_Study02/src.txt");
    11         InputStream is = null;
    12         
    13         try {
    14             is = new FileInputStream(src);
    15             
    16             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
    17             int length = -1;
    18             int times = 0;
    19             while ((length = is.read(buffer)) != -1) {
    20                 ++times;
    21                 System.out.println("length: " + length);
    22                 System.out.println("times: " + times);
    23             }
    24             System.out.println("length: " + length);
    25         } catch (FileNotFoundException e) {
    26             e.printStackTrace();
    27         } catch (IOException e) {
    28             e.printStackTrace();
    29         } finally {
    30             try {
    31                 if (is != null) {
    32                     is.close();
    33                 }
    34             } catch (IOException e) {
    35                 e.printStackTrace();
    36             }
    37         }
    38     }
    39 }

     

    输出结果:

    length: 47
    times: 1
    length: -1

    length = 47,代表从src.txt中读取到的字节数,也就是有read()返回的。

    times = 1,表示while()循环只执行了一次。

    length = -1,是while()执行第二次判断,因为src.txt中的内容已经读取完毕了,所以read()返回-1。

     

    public void write(byte[] b, int off, int len) - 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。参数:b - 数据。 off - 数据中的起始偏移量。 len - 要写入的字节数。

    ----    ----    ----    ----    ----    ----    ----    ----

    分解三

    功力不够深厚,理解不了,写不出!!!

     

    ----    ----    ----    ----    ----    ----    ----    ----

    分解X

    86         dest.delete();

    public boolean delete() - 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。返回: 当且仅当成功删除文件或目录时,返回 true;否则返回 false

     

    ----    ----    ----    ----    ----    ----    ----    ----

    总结:待完善、纠错。

    转载于:https://www.cnblogs.com/Satu/p/10012349.html

    展开全文
  • Java实现多文档文本编辑器

    千次阅读 2018-01-27 16:55:34
    java实现多文档文本编辑器编辑器界面比较简单,但功能较为全面,可以保存,另存,打开文件,复制,粘贴,撤销,剪切,字体设置,部分文字的字体设置,部分文字的颜色设置,字数统计,查找,替换等功能。 package ...

    java实现多文档文本编辑器

    编辑器界面比较简单,但功能较为全面,可以保存,另存,打开文件,复制,粘贴,撤销,剪切,字体设置,部分文字的字体设置,部分文字的颜色设置,字数统计,查找,替换等功能。
    这里写图片描述

    package 编辑器;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;   //Date needed
    import java.text.SimpleDateFormat;
    import java.io.*;
    import javax.swing.event.*;
    import sun.audio.*;
    public class FontDialog extends JDialog implements ActionListener,ItemListener
    {   static final int OK=1,NO=0;public int message=-1;
        private JButton OK_but,NO_but;
        private Choice cho01,cho02,cho03,cho04;
        public String str01,str02;
        public FontDialog(JFrame f,String str,boolean b)
        {
            super(f,str,b);
            Container cont = getContentPane();
    
            Font []font  = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
            String []fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); 
            cho01 = new Choice();
            for(int i = fontNames.length-1;i>=0;i--)
            {
               cho01.add(fontNames[i]);
            }
            cho02 = new Choice();
            cho02.setEnabled(true);
            for(int s = 10;s<73;s=s+2)
            {
              cho02.add(Integer.toString(s));
            }
            cho02.select(5);
    
            cho01.addItemListener(this);
            cho02.addItemListener(this);
    
            cont.setLayout(new FlowLayout(FlowLayout.LEFT));
            JLabel jll = new JLabel("字体",JLabel.LEFT);
            cont.add(jll);
            cont.add(cho01);
            jll = new JLabel("大小",JLabel.LEFT);
            cont.add(jll);cont.add(cho02);
    
            //str01 = cho01.getItem(cho01.getSelectedIndex());
            //str02 = cho02.getItem(cho02.getSelectedIndex());
    
            OK_but=new JButton("确定");
            OK_but.addActionListener(this);
            NO_but=new JButton("取消");
            NO_but.addActionListener(this);
    
            cont.add(OK_but);
            cont.add(NO_but);
            //setSize(380,120);
            setBounds(400,200,380,120);
            setResizable(false); 
            setVisible(true);
        }
        public void actionPerformed(ActionEvent ev)
        {
            if(ev.getSource()==OK_but)
            {
                message=OK;
                setVisible(false);
            }
    
            if(ev.getSource()==NO_but)
            {   message=NO;
                setVisible(false);
                setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
            }
        }
        public void itemStateChanged(ItemEvent e)
        {
            str01 = cho01.getItem(cho01.getSelectedIndex());
            str02 = cho02.getItem(cho02.getSelectedIndex());
        }
    }
    package 编辑器;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.JTextPane;
    import javax.swing.border.EmptyBorder;
    import javax.swing.event.CaretEvent;
    import javax.swing.event.CaretListener;
    import javax.swing.event.UndoableEditEvent;
    import javax.swing.event.UndoableEditListener;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.DefaultStyledDocument;
    import javax.swing.text.Document;
    import javax.swing.text.SimpleAttributeSet;
    import javax.swing.text.StyleConstants;
    import javax.swing.undo.CannotRedoException;
    import javax.swing.undo.UndoManager;
    import copy.TextEditBox;
    import copy1.FontDialog;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JMenu;
    import java.awt.Font;
    import java.awt.GraphicsEnvironment;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.Rectangle;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JColorChooser;
    import javax.swing.JEditorPane;
    import javax.swing.JFileChooser;
    import javax.swing.Icon;
    import java.awt.event.ActionListener;
    import java.awt.event.FocusEvent;
    import java.awt.event.FocusListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.awt.event.ActionEvent;
    import javax.swing.JComboBox;
    import javax.swing.JDialog;
    import javax.swing.JToolBar;
    public class MainView extends JFrame implements ActionListener,FocusListener, 
    MouseListener,CaretListener,UndoableEditListener {
    
        private JPanel contentPane;
        private UndoManager manager; 
        /**
         * Create the frame.
         */
        private JComboBox com1,com2;// 字体、字号组合框  
        String filename;
        private int key, j,count;
        private JLabel lblStatus;
        private File file01,file02;
        private JFileChooser jfc;
        private JTextPane  jta[]=new JTextPane[20],jep;//JTextArea jt;
        private int close_i = 0,i = 0,k=0,TabNum;
        private JScrollPane jsp[]=new JScrollPane[20];
        private JTabbedPane tab1,tab;
        private JButton b3,b1,b6,button_1,button3,button9,button_2,button_3,button_4,button_5,button_7,button8,btn1,btn2;
        private JMenuItem m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,mnNew3,mnNew4,mnNew2,item,item1;
        private JToolBar toolBar;
        private JTextField tf_search;  
        private JButton button_next;  
        private JMenuItem menuItem_3;
        SimpleAttributeSet set=new SimpleAttributeSet();
        SimpleAttributeSet set1=new SimpleAttributeSet();
        int start,length,start1,length1;
        public MainView() {
            setTitle("多页面文本编辑器");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 780, 509);
    
            JMenuBar menuBar = new JMenuBar();
            setJMenuBar(menuBar);
    
            JMenu menu = new JMenu("文件");
            menu.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16));
            menuBar.add(menu);
    
            mnNew2 = new JMenuItem("\u65B0\u5EFA");
            mnNew2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu.add(mnNew2);
            mnNew2.addActionListener(this);
    
            m1 = new JMenuItem("\u6253\u5F00");
            m1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu.add(m1);
            m1.addActionListener(this);
    
            m2 = new JMenuItem("\u4FDD\u5B58");
            m2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu.add(m2);
            m2.addActionListener(this);
    
            menuItem_3 = new JMenuItem("\u53E6\u5B58\u4E3A");
            menuItem_3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menuItem_3.addActionListener(this);
            menu.add(menuItem_3);
    
            mnNew3 = new JMenuItem("\u5173\u95ED\u5F53\u524D\u9875");
            mnNew3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu.add(mnNew3);
    
            item = new JMenuItem("\u5173\u95ED\u5168\u90E8\u9875");
            item.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu.add(item);
            item.addActionListener(this);
            mnNew3.addActionListener(this);
    
            JMenu mnNewMenu = new JMenu("编辑");
            mnNewMenu.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16));
            menuBar.add(mnNewMenu);
    
            m6 = new JMenuItem("\u64A4\u9500");
            m6.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu.add(m6);
            m6.addActionListener(this);
    
            mnNew4 = new JMenuItem("\u526A\u5207");
            mnNew4.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu.add(mnNew4);
            mnNew4.addActionListener(this);
    
            m3 = new JMenuItem("\u590D\u5236");
            m3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu.add(m3);
            m3.addActionListener(this);
    
            m4 = new JMenuItem("\u7C98\u8D34");
            m4.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu.add(m4);
            m4.addActionListener(this);
    
            m7 = new JMenuItem("\u67E5\u627E");
            m7.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu.add(m7);
    
            item1 = new JMenuItem("\u5168\u9009");
            item1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            item1.addActionListener(this);
            mnNewMenu.add(item1);m7.addActionListener(this);
    
            JMenu mnNewMenu_1 = new JMenu("格式");
            mnNewMenu_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16));
            menuBar.add(mnNewMenu_1);
    
            m8 = new JMenuItem("\u5B57\u4F53");
            m8.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu_1.add(m8);
            m8.addActionListener(this);
    
            m9 = new JMenuItem("\u5B57\u4F53\u989C\u8272");
            m9.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu_1.add(m9);
            m9.addActionListener(this);
    
            m10 = new JMenuItem("\u80CC\u666F\u989C\u8272");
            m10.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            mnNewMenu_1.add(m10);
    
            JMenu menu_1 = new JMenu("\u5DE5\u5177");
            menu_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16));
            menuBar.add(menu_1);
    
            JMenuItem menuItem = new JMenuItem("\u5B57\u6570\u7EDF\u8BA1");
            menuItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu_1.add(menuItem);
            menuItem.addActionListener(new ActionListener() {//字数统计
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    // TODO Auto-generated method stub
                     int count=0;  
                        for(int i=0;i<jep.getText().length();i++){  
                            if(!jep.getText().substring(i,i+1).equals(" ")){  
                                count++;  
                            }  
                        }  
                        JOptionPane.showMessageDialog(MainView.this, "文本框中一共有"+count+"个字符!"); 
                }
            });
    
            JMenuItem menuItem_1 = new JMenuItem("\u67E5\u627E");
            menuItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu_1.add(menuItem_1);
    
            menuItem_1.addActionListener(new ActionListener() {//查找
                 public void actionPerformed(ActionEvent e) {
                        k=0;
                        new MessageJDialog();  
                        button_next.addActionListener(new ActionListener() {  
                            public void actionPerformed(ActionEvent e) {  
                                String str_search=tf_search.getText();  
                                int len = str_search.length();  
                                for (int i = key; i < jep.getText().length() - len + 1; i++) {  
                                    String str_record = jep.getText().substring(i, i + len);  
                                    if (str_record.equals(str_search)) {  
                                        key = i + 1;  
                                        jep.requestFocus();  
                                        jep.select(i, i + len);  
                                        return;  
                                    }  
                                }  
                            }
                        });
                 }
            });
    
            JMenuItem menuItem_2 = new JMenuItem("\u66FF\u6362");
            menuItem_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
            menu_1.add(menuItem_2);
            menuItem_2.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {  
                        String str_replace=JOptionPane.showInputDialog(MainView.this,  
                                "请输入你要替换的字符串:" );  
                        String str_replacelater=JOptionPane.showInputDialog(MainView.this,  
                                "请输入你要用来替换的内容:" );  
                        int len=str_replace.length();  
                        for(int i=0;i<jep.getText().length()-len+1;i++){  
                            String str_record=jep.getText().substring(i, i+len);  
                            if(str_record.equals(str_replace)){  
                                Document doc=jep.getDocument();
                                try {
                                    doc.remove(i, len);
                                    doc.insertString(i, str_replacelater,set);
                                } catch (BadLocationException e1) {
                                    // TODO Auto-generated catch block
                                    e1.printStackTrace();
                                }
    
    
                            }  
                        }  
                    }  
            });
    
            m10.addActionListener(this);
            contentPane = new JPanel();
            contentPane.setLayout(null);
            setContentPane(contentPane);
            ImageIcon image=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\save.gif");
            image.setImage(image.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image1=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\open.gif");
            image1.setImage(image1.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image11=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\cut.gif");
            image11.setImage(image11.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image2=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\copy.gif");
            image2.setImage(image2.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image3=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\Font.png");
            image3.setImage(image3.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image4=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\FontColor.png");
            image4.setImage(image4.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image5=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\加粗.png");
            image5.setImage(image5.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image6=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\new.gif");
            image6.setImage(image6.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image7=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\斜体.png");
            image7.setImage(image7.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            ImageIcon image8=new ImageIcon("D:\\eclipse-workspace\\04107204刘聪\\下划线.png");
            image8.setImage(image8.getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT));
            TabNum=0;
            //jta=new JEditorPane[100]; 
            //jsp=new JScrollPane[100];
    
            for(int i=TabNum;i>0;i--)
            {   jta[TabNum-1]=new JTextPane();
                jsp[TabNum-1]=new JScrollPane(jta[TabNum-1]); 
    
                jta[TabNum-1].getDocument().addUndoableEditListener(manager);
                jta[TabNum-1].addCaretListener(this);
                jsp[TabNum-1].setViewportView(jta[TabNum-1]);
                if(TabNum!=0)
                {
                    tab.addTab("无标题"+i,jsp[TabNum-1]);
                }               
            }
    
            tab = new JTabbedPane(JTabbedPane.TOP);
            tab.setBounds(24, 46, 693, 390);
            contentPane.add(tab);
    
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();  
            String[] fontsName = ge.getAvailableFontFamilyNames(); // 获得系统字体  
    
            String sizestr[] = { "12", "14", "16", "18", "20", "22" ,"24","26","28","30","32","34","36","38","40","42","44","46","48","50"
                    ,"52","54","56","58","60","62","64","66","68","70"};  
    
            toolBar = new JToolBar();
            toolBar.setBounds(0, 0, 774, 25);
            contentPane.add(toolBar);
    
            b6 = new JButton((Icon) null);
            toolBar.add(b6);
            b6.setIcon(image6);
    
            b1 = new JButton();
            toolBar.add(b1);
            b1.setIcon(image1);
    
             b3 = new JButton();
             toolBar.add(b3);
             b3.setIcon(image);
    
             button3 = new JButton((Icon) null);
             toolBar.add(button3);
             button3.setIcon(image11);
    
             button9 = new JButton((Icon) null);
             toolBar.add(button9);
             button9.setIcon(image2);
    
             JButton button5 = new JButton((Icon) null);
             toolBar.add(button5);
             button5.setIcon(image5);
             button5.addActionListener(new ActionListener() {//加粗
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    String fontname = (String)com1.getSelectedItem();//获得字体名  
                    int size =Integer.parseInt((String)com2.getSelectedItem());  
                    Font font = jep.getFont();
                    int style = font.getStyle(); 
                    style = style ^ 1;  
                    jep.setFont(new Font(fontname, style, size));  
                } 
             });
    
             com1 = new JComboBox(fontsName);
             toolBar.add(com1);
             com2 = new JComboBox(sizestr);  
             toolBar.add(com2);
             com2.setEditable(true);
             com1.addActionListener(new ActionListener() {//设置字体
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    // TODO Auto-generated method stub
                   String fontname = (String)com1.getSelectedItem();//获得字体名  
                   Font font = jep.getFont();     //获得文本区的当前字体对象  
                   int style = font.getStyle();      //获得字形  
                   int size = Integer.parseInt((String)com2.getSelectedItem());   
                   jep.setFont(new Font(fontname, style, size));  
                }
             });
             com2.addActionListener(new ActionListener() {//设置字号
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                        String fontname = (String)com1.getSelectedItem();//获得字体名  
                        int size = Integer.parseInt((String)com2.getSelectedItem());  
                        Font font = jep.getFont();     //获得文本区的当前字体对象  
                        int style = font.getStyle();      //获得字形  
                        jep.setFont(new Font(fontname, style, size));  
                } 
             });
    
             JButton button_7_1 = new JButton((Icon) null);
             toolBar.add(button_7_1);
             button_7_1.setIcon(image7);
             button_7_1.addActionListener(new ActionListener() {//斜体
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                     String fontname = (String)com1.getSelectedItem();//获得字体名  
                        Font font = jep.getFont();     //获得文本区的当前字体对象  
                        int style = font.getStyle();      //获得字形  
                        int size = font.getSize();  
                        style = style ^ 2;  
                        jep.setFont(new Font(fontname, style, size));  
                } 
             });
    
             btn1 = new JButton();
             toolBar.add(btn1);
             btn1.setFont(new Font("宋体", Font.PLAIN, 12));
             btn1.setText("A+");
             btn1.addActionListener(new ActionListener() {//增加字号
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                     String fontname = (String)com1.getSelectedItem();//获得字体名  
                     int size = Integer.parseInt((String)com2.getSelectedItem())+2;   
                     com2.setSelectedItem(String.valueOf(size));
                     Font font = jep.getFont();     //获得文本区的当前字体对象  
                     int style = font.getStyle();      //获得字形  
                     jep.setFont(new Font(fontname, style, size));  
                }
             });
    
             JButton btn2_1 = new JButton((Icon) null);
             toolBar.add(btn2_1);
             btn2_1.setText("A-");
             btn2_1.setFont(new Font("宋体", Font.PLAIN, 12));
             btn2_1.addActionListener(new ActionListener() {//减小字号
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    String fontname = (String)com1.getSelectedItem();//获得字体名  
                    int size = Integer.parseInt((String)com2.getSelectedItem())-2;
                    com2.setSelectedItem(String.valueOf(size));
                    Font font = jep.getFont();     //获得文本区的当前字体对象  
                    int style = font.getStyle();      //获得字形  
                    jep.setFont(new Font(fontname, style, size));  
                }
             });
             button8 = new JButton((Icon) null);
             toolBar.add(button8);
             button8.setIcon(image4);
             button8.addActionListener(this);
             button_7_1.addActionListener(this);
             button5.addActionListener(this);
             button9.addActionListener(this);
             button3.addActionListener(this);
             b3.addActionListener(this);
            b1.addActionListener(this);
            b6.addActionListener(this);
    
            manager=new UndoManager();
    
            tab.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    p(e);
                }
                public void p(MouseEvent e) {
                    for(int i=0;i<=TabNum;i++) {
                        Rectangle rect=tab.getBoundsAt(i);
                        if(rect.contains(e.getX(),e.getY())) {
                            count=i;
                        }
                    }
                }
            });
    
    
        }
         public void actionPerformed(ActionEvent e) {
                       if(e.getSource()==b1||e.getSource()==m1) {//打开
                        jta[TabNum]=new JTextPane();
                        jta[TabNum].addFocusListener(this);        
                        jta[TabNum].getDocument().addUndoableEditListener(manager);
                        jta[TabNum].addCaretListener(this);    
                        // jta[TabNum].setLineWrap(true);
    
                        dakai(jta[TabNum]);
                        //TabNum++;
                        jsp[TabNum]=new JScrollPane(jta[TabNum],JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                                JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
                        tab.addTab(filename,jta[TabNum]);
    
                        jep=jta[0];
                        tab.setVisible(true);
                        j=TabNum-1;
                       }else if(e.getSource()==b6||e.getSource()==mnNew2) {//新建
                           TabNum++;
                        jta[TabNum-1]=new JTextPane();
                        jta[TabNum-1].addFocusListener(this);
                        jsp[TabNum-1]=new JScrollPane(jta[TabNum-1],JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);         
                        jta[TabNum-1].getDocument().addUndoableEditListener(manager);
                        jta[TabNum-1].addCaretListener(this);
                        //jta[TabNum-1].setLineWrap(true);
                        jsp[TabNum-1].setViewportView(jta[TabNum-1]);           
                        tab.addTab("无标题"+TabNum,jsp[TabNum-1]);
                        jep=jta[0];       
                        tab.setVisible(true);       
                        jta[TabNum-1].setFont(new Font((String) com1.getSelectedItem(),Font.PLAIN,Integer.parseInt((String)com2.getSelectedItem())));
                       }else if(e.getSource()==b3||e.getSource()==m2) {//保存
                           baocun(jep);
                       }else if(e.getSource()==menuItem_3){
                           lingcun(jep);
                       }else if(e.getSource()==mnNew3) {//关闭
                           close(jep);
                       }else if(e.getSource()==item) {//全部关闭
                           tab.setVisible(false);
                       }else if(e.getSource()==m3||e.getSource()==button9) {//复制
                           jep.copy();
                       }else if(e.getSource()==m4) {//粘贴
                           jep.paste();
                       }else if(e.getSource()==item1) {//全选
                           jep.selectAll();
                       }else if(e.getSource()==mnNew4||e.getSource()==button3) {//剪切
                           jep.cut();
                       }else if(e.getSource()==m8) {//设置文字
                           try {
                            wenzi(jep);
                        } catch (BadLocationException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                       }else if(e.getSource()==m6) {//撤销
                           Undo();
                       } else if(e.getSource()==m9||e.getSource()==button8) {
                           try {
                            color(jep);
                        } catch (BadLocationException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                       }else if(e.getSource()==m10) {
                           try {
                            backcolor(jep);
                        } catch (BadLocationException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
    
                       }
    
         }
            public void wenzi(JTextPane jep2) throws BadLocationException
            {   
                FontDialog fdg = new FontDialog(this,"文字设置",true);
                start=jep2.getSelectionStart();
                length= jep2.getSelectionEnd()-start;
                String ss=jep2.getSelectedText();
                if(fdg.message==1)
                {  
    
                StyleConstants.setFontSize(set, Integer.parseInt(fdg.str02));
                StyleConstants.setFontFamily(set, fdg.str01);
                Document doc=jep2.getDocument();
                doc.remove(start, length);
                doc.insertString(start, ss, set);
                }   
            }
         public void backcolor(JTextPane jep2) throws BadLocationException {
             Color newColor=JColorChooser.showDialog(this,"文字颜色选择器",m9.getBackground());
                int start=jep2.getSelectionStart();
                int length= jep2.getSelectionEnd()-start;
                String ss=jep2.getSelectedText();
                StyleConstants.setBackground(set, newColor);
                Document doc=jep2.getDocument();
                doc.remove(start, length);
                doc.insertString(start, ss, set);
         }
         public void color(JTextPane jep2) throws BadLocationException {
                Color newColor=JColorChooser.showDialog(this,"文字颜色选择器",m9.getBackground());
                start1=jep2.getSelectionStart();
                length1= jep2.getSelectionEnd()-start1;
                String ss=jep2.getSelectedText();
                if(start1==start&&length==length1) {
                    StyleConstants.setForeground(set, newColor);
                    Document doc=jep2.getDocument();
                    doc.remove(start, length);
                    doc.insertString(start, ss, set);
                }else {
                    Font font=jep2.getFont();
                    StyleConstants.setFontFamily(set1, font.getFontName());
                    StyleConstants.setFontSize(set1, font.getSize());
                    StyleConstants.setForeground(set1, newColor);
                    Document doc=jep2.getDocument();
                    doc.remove(start, length);
                    doc.insertString(start, ss, set1);
                }
    
         }
        private void dakai(JTextPane jta2)//打开
        {   
            jfc = new JFileChooser();
                int se = jfc.showOpenDialog(this);
                if(se==JFileChooser.APPROVE_OPTION)
                {
                    try
                    {
                        file01=jfc.getSelectedFile();
                        filename =file01.getName();  
                        FileReader fr = new FileReader(file01);
                        BufferedReader rd = new BufferedReader(fr);
                        String s = null;
                        Byte []buf = new Byte[64];
                        String open = null;
                        while((s=rd.readLine())!=null)
                        {
                            jta2.replaceSelection(s+"\n");
                        }
                    }
                    catch(IOException exx)
                    {
                        exx.printStackTrace();
                    }
    
                }
        }
        private void lingcun(JTextPane jep2)//另存
        {
            jfc = new JFileChooser();
                int se = jfc.showSaveDialog(this);
                if(se==JFileChooser.APPROVE_OPTION)
                {
                    try
                    {
                        String sr_s = jfc.getSelectedFile().getAbsolutePath();
                        FileOutputStream fos = new FileOutputStream(new File(sr_s));
                        OutputStreamWriter osw = new OutputStreamWriter(fos);
                        String saveString=jep2.getText().replaceAll("\n","\r\n"); 
                        osw.write(saveString);
                        osw.flush();
                        osw.close();   
                    }
                    catch(IOException es)
                    {
                        es.printStackTrace();
                    }       
                }
        }
        private void baocun(JTextPane jep2)//保存
        {
                try
                {
                    String sr_s = jfc.getSelectedFile().getAbsolutePath();
                    FileOutputStream fos = new FileOutputStream(new File(sr_s));
                    OutputStreamWriter osw = new OutputStreamWriter(fos);
                    String saveString=jep2.getText().replaceAll("\n","\r\n"); 
                    osw.write(saveString);
                    osw.flush();
                    osw.close();   
                }
                catch(IOException es)
                {
                    es.printStackTrace();
                }   
        }
        public void close(JTextPane jep2) {
               tab.remove(count);
        }
        private void Undo()
        {
            try
            {
                manager.undo();
    
            }
            catch(CannotRedoException e1)
            {
    
            }   
        }
    
        public static void main(String []args) {
            MainView v=new MainView();
            v.setVisible(true);
        }
        @Override
        public void undoableEditHappened(UndoableEditEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void caretUpdate(CaretEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void mouseClicked(MouseEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void mouseEntered(MouseEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void mouseExited(MouseEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void mousePressed(MouseEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub
    
        }
        @Override
        public void focusGained(FocusEvent et) {
            // TODO Auto-generated method stub
            if(et.getSource()==jta[0])
                jep=jta[0];
            if(et.getSource()==jta[1])
                jep=jta[1];
            if(et.getSource()==jta[2])
                jep=jta[2];
            if(et.getSource()==jta[3])
                jep=jta[3];
            if(et.getSource()==jta[4])
                jep=jta[4];         
            if(et.getSource()==jta[5])
                jep=jta[5];
            if(et.getSource()==jta[6])
                jep=jta[6];
            if(et.getSource()==jta[7])
                jep=jta[7];
            if(et.getSource()==jta[8])
                jep=jta[8];
            if(et.getSource()==jta[9])
                jep=jta[9];  
        }
        private class MessageJDialog extends JDialog {  
            private JLabel lable_tip;  
            private JPanel panel_next = new JPanel();  
            private JPanel panel_search = new JPanel();  
            private JPanel panel_tip = new JPanel();  
    
            public MessageJDialog() {  
                super(MainView.this, "查找");  
                this.setSize(300, 170);  
                this.setLocation(MainView.this.getX() + 200,  
                        MainView.this.getY() + 200);  
                getContentPane().setLayout(new GridLayout(3, 1));  
                //  
                ImageIcon imageIcon = new ImageIcon("img/search.png");  
                lable_tip = new JLabel("请输入你要查找的字符串:", imageIcon, JLabel.LEFT);  
                panel_tip.add(lable_tip);  
                getContentPane().add(panel_tip);  
                tf_search = new JTextField(20);  
                panel_search.add(tf_search);  
                getContentPane().add(panel_search);  
                button_next = new JButton("查找下一个");  
                panel_next.add(button_next);  
                getContentPane().add(panel_next);  
                this.setVisible(true);  
            }  
        }
        public void focusLost(FocusEvent arg0) {
            // TODO Auto-generated method stub
    
        }
    }
    
    展开全文
  • 那么我们来看一下怎么在Java复制图片和文档呢?这里就要使用到I/O流中的字节流和字符流。 字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理...
  • 字节流 就是以字节为单位对文件或文件目录进行操作,...以字符为单位赋值文本文档,字符流只能复制文本文档 在赋值时可以进行制定码表的转换 转载于:https://www.cnblogs.com/axu-xxx/p/11452723.html...
  • 这个和之前的FileInputStream用法一样 注意: * 使用FileReader、FileWriter 可以实现文本文件的复制。...记录一下使用示例:文本文档复制 import java.io.File; import java.io.FileNotFoundExceptio...
  • import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import jav...
  • 水印是一种常用于各种文档的声明、防伪手段,一般可设置文字水印或者加载图片作为水印。以下内容将分享通过Java编程给Word文档添加水印效果的方法。 使用工具:Free Spire.Doc for Java 2.0.0(免费版) 为了...
  • JAVA记事本项目文档

    2011-06-01 15:59:00
    (3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行 (4)“关于”菜单中有关于记事本程序的制作日期,作者等信息
  • Java计算器文档

    2012-01-04 21:16:35
    简单Java计算器实现,其中包括了对数据的复制粘贴功能,文档从专业角度撰写,有需求分析、概要设计、详细文档等......希望能给大家带来一点好处。(主要是前阵子看到有个人也在CSDN上面上传了一个关于计算器的文档,...
  • java导出javadoc文档

    2017-11-26 17:55:50
    一、注释 (1)文档注释的格式化  生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。... 文档注释的正文并不是直接复制到输出文件 
  • 所以,本文将演示如何使用Java程序来为Word文档添加多行文字水印。 代码测试环境: Intellij Idea2019.1 JDK 1.8.0 Spire.Doc.jar Jar包获取及导入 方法一:手动导入Jar包至IDEA。具体步骤如下: 步骤 1:在 E...
  • Java解析word文档

    千次阅读 2017-02-14 15:35:00
    在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何解析word文档。 因为系统如果无法智能的解析word,那么就只能通过其他方式手动录入word内容,效率低下,而且人工成本和录入出错率都较高。 疑难点 ...
  • Java实现在线word文档添加铺满效果文字水印,文字可换行使用插件Aspose.words for java生成水印的工具类调用生成水印方法 需求:为在线预览的word文档添加自定义水印,还要铺满效果,文字太多还要能换行 使用插件...
  • Java实现简单文本文件复制

    千次阅读 2013-04-05 14:27:54
    import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TextFileCopy { public static void main(String[] args) { FileReader reader = null; FileWriter writer
  • Java| Javadoc生成Java帮助文档

    千次阅读 2017-11-16 19:59:50
    一.JavaDoc介绍Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc...
  • java面试题文档(QA)

    万次阅读 2020-04-27 10:23:54
    关注公众号『Java专栏』,发送『面试』 获取该项目完整PDF [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzm8O4kR-1587954091979)(qr_code.jpg)] 基础篇 1、 Java语言有哪些特点 2、...
  • Java向word文档中填充数据

    千次阅读 2018-11-08 15:08:57
    前言: 对于中大型OA系统来说,在线打开word文档已经是一个常用需求。既然有在线操作word文档的需求,那就不可避免要有打开文档时动态...推荐像小编一样 只懂Java不懂VBA接口 不懂office程序调用的同学花10分钟学习...
  • 文档文本编辑器--Multiple Documents Text Editor 使用java语言按照java Bean 规范进行开发,基于MVC模型, 编码规范简洁,结构紧凑,且有详细注释,很适用于java初学者 作为进阶的参考! 该软件实现了多文档编辑...
  • 参考文档:...1.BufferedReader、BufferedWriter复制文件的代码如下: package com.JavaIO; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F...
  • 在TextArea里面写入要复制的内容,在TextFeild里面写入要目标文本文档,button用来复制TextArea里面的内容到TextFeild里面。import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io....
  • 最近公司的需求:替换docx文档中的指定文字(文章主题,时间等),生成新的docx文档,再把文档转换成pdf。目的是在pdf中签名使用
  • 新建记事本,重命名为xxx.java(注意要把后缀txt也改了) 打开,将下列代码复制进去public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }保存到简单的...
  • aspose for java是一款非常好用的文档件转换的工具,还原度贼高而且支持多种格式转换现在就其中5种进行转换1.首先下载jaraspose.words for java文档转换工具类 下载完成后,导入到自己的项目中这个工具类不开源,如不...
  • *JAVA——实现 字节流练习之复制文本文件 * 数据源 : "E:\\窗里窗外.txt" * 目的地 : "窗里窗外.txt" 代码如下: public class Demo3 { public static void main(String[] args) throws IOException { // 创建...
  • java中将word文档转换为html文件,不过重点是样式为内联css样式 在网上搜索的全部都是嵌入式css样式,这样的话将html内容导入到百度文本编辑器中的时候样式全部去掉了
  • java docx文档解析 几个月前,我需要创建一个包含许多表和段落的动态Word文档。 过去,我曾使用POI来实现此目的,但是我发现它很难使用,并且在创建更复杂的文档时对我来说效果不佳。 因此,对于这个项目,经过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,599
精华内容 32,639
关键字:

java复制文本文档

java 订阅