java桌面课程设计——记事本

来源:互联网 发布:淘宝买家秀征集活动 编辑:程序博客网 时间:2024/05/21 15:44

         以前也写过记事本,但是实现的功能不是太全,这次课程设计彻彻底底的把记事本主要功能实现包括:新建,打开,保存,另存,退出,打印,剪切,删除,复制,粘贴,全选,替换,查找,时间日期,自动换行,字体,帮助。界面设计主要是netbean工具,事件处理主要手写,主要运用IO流,代码不是太复杂。下面是代码:

    

import java.awt.BorderLayout;

import java.awt.FileDialog;

import java.awt.Font;

import java.awt.Frame;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Label;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileDescriptor;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JDialog;

import javax.swing.JFileChooser;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.event.UndoableEditEvent;

import javax.swing.event.UndoableEditListener;

import javax.swing.undo.UndoManager;


public class NoteBook extends javax.swing.JFrame {


    int StartFindPos = 0, a = 0, b = 0;

     private JFileChooser fileChooser;

    private BufferedWriter BufferedWriter;

    private File file=null;

     public NoteBook() {

        initComponents();

        this.setTitle("记事本--未命名");

    }


    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

    private void initComponents() {


        jPopupMenu1 = new javax.swing.JPopupMenu();

        JP_Delete = new javax.swing.JMenuItem();

        JP_Cut = new javax.swing.JMenuItem();

        JP_Copy = new javax.swing.JMenuItem();

        JP_Paste = new javax.swing.JMenuItem();

        JP_SelectAll = new javax.swing.JMenuItem();

        jPanel1 = new javax.swing.JPanel();

        jScrollPane1 = new javax.swing.JScrollPane();

        jTextArea1 = new javax.swing.JTextArea();

        jMenuBar1 = new javax.swing.JMenuBar();

        jMenu1 = new javax.swing.JMenu();

        Create = new javax.swing.JMenuItem();

        Open = new javax.swing.JMenuItem();

        Save = new javax.swing.JMenuItem();

        SaveAs = new javax.swing.JMenuItem();

        jSeparator1 = new javax.swing.JPopupMenu.Separator();

        Print = new javax.swing.JMenuItem();

        jSeparator2 = new javax.swing.JPopupMenu.Separator();

        Exit = new javax.swing.JMenuItem();

        jMenu2 = new javax.swing.JMenu();

        Cut = new javax.swing.JMenuItem();

        Copy = new javax.swing.JMenuItem();

        Paste = new javax.swing.JMenuItem();

        Delete = new javax.swing.JMenuItem();

        jSeparator3 = new javax.swing.JPopupMenu.Separator();

        Find = new javax.swing.JMenuItem();

        Exchange = new javax.swing.JMenuItem();

        jSeparator4 = new javax.swing.JPopupMenu.Separator();

        SelectAll = new javax.swing.JMenuItem();

        Time = new javax.swing.JMenuItem();

        jMenu3 = new javax.swing.JMenu();

        Automatic_line = new javax.swing.JCheckBoxMenuItem();

        Font = new javax.swing.JMenuItem();

        jMenu4 = new javax.swing.JMenu();

        About = new javax.swing.JMenuItem();


        jPopupMenu1.setName("jPopupMenu1"); // NOI18N


        JP_Delete.setLabel("删除");

        JP_Delete.setName("JP_Delete"); // NOI18N

        JP_Delete.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                JP_DeleteActionPerformed(evt);

            }

        });

        jPopupMenu1.add(JP_Delete);


        JP_Cut.setLabel("剪切");

        JP_Cut.setName("JP_Cut"); // NOI18N

        JP_Cut.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                JP_CutActionPerformed(evt);

            }

        });

        jPopupMenu1.add(JP_Cut);


        JP_Copy.setLabel("复制");

        JP_Copy.setName("JP_Copy"); // NOI18N

        JP_Copy.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                JP_CopyActionPerformed(evt);

            }

        });

        jPopupMenu1.add(JP_Copy);


        JP_Paste.setLabel("粘贴");

        JP_Paste.setName("JP_Paste"); // NOI18N

        JP_Paste.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                JP_PasteActionPerformed(evt);

            }

        });

        jPopupMenu1.add(JP_Paste);


        JP_SelectAll.setLabel("全选");

        JP_SelectAll.setName("JP_SelectAll"); // NOI18N

        JP_SelectAll.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                JP_SelectAllActionPerformed(evt);

            }

        });

        jPopupMenu1.add(JP_SelectAll);


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


        jPanel1.setName("jPanel1"); // NOI18N


        jScrollPane1.setName("jScrollPane1"); // NOI18N


        jTextArea1.setColumns(20);

        jTextArea1.setRows(5);

        jTextArea1.setName("jTextArea1"); // NOI18N

        jTextArea1.addMouseListener(new java.awt.event.MouseAdapter() {

            public void mousePressed(java.awt.event.MouseEvent evt) {

                jTextArea1MousePressed(evt);

            }

        });

        jScrollPane1.setViewportView(jTextArea1);


        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

        jPanel1.setLayout(jPanel1Layout);

        jPanel1Layout.setHorizontalGroup(

            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)

        );

        jPanel1Layout.setVerticalGroup(

            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)

        );


        jMenuBar1.setName("jMenuBar1"); // NOI18N


        jMenu1.setText("文件(F)");

        jMenu1.setName("jMenu1"); // NOI18N


        Create.setText("新建(N)");

        Create.setName("Create"); // NOI18N

        Create.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                CreateActionPerformed(evt);

            }

        });

        jMenu1.add(Create);


        Open.setText("打开(O)...");

        Open.setName("Open"); // NOI18N

        Open.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                OpenActionPerformed(evt);

            }

        });

        jMenu1.add(Open);


        Save.setText("保存(S)...");

        Save.setName("Save"); // NOI18N

        Save.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                SaveActionPerformed(evt);

            }

        });

        jMenu1.add(Save);


        SaveAs.setText("另存为(A)");

        SaveAs.setName("SaveAs"); // NOI18N

        SaveAs.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                SaveAsActionPerformed(evt);

            }

        });

        jMenu1.add(SaveAs);


        jSeparator1.setName("jSeparator1"); // NOI18N

        jMenu1.add(jSeparator1);


        Print.setText("打印(P)...");

        Print.setName("Print"); // NOI18N

        Print.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                PrintActionPerformed(evt);

            }

        });

        jMenu1.add(Print);


        jSeparator2.setName("jSeparator2"); // NOI18N

        jMenu1.add(jSeparator2);


        Exit.setText("退出(X)");

        Exit.setName("Exit"); // NOI18N

        Exit.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                ExitActionPerformed(evt);

            }

        });

        jMenu1.add(Exit);


        jMenuBar1.add(jMenu1);


        jMenu2.setText("编辑(E)");

        jMenu2.setName("jMenu2"); // NOI18N


        Cut.setText("剪切(T)");

        Cut.setName("Cut"); // NOI18N

        Cut.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                CutActionPerformed(evt);

            }

        });

        jMenu2.add(Cut);


        Copy.setText("复制(C)");

        Copy.setName("Copy"); // NOI18N

        Copy.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                CopyActionPerformed(evt);

            }

        });

        jMenu2.add(Copy);


        Paste.setText("粘贴(P)");

        Paste.setName("Paste"); // NOI18N

        Paste.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                PasteActionPerformed(evt);

            }

        });

        jMenu2.add(Paste);


        Delete.setText("删除(L)");

        Delete.setName("Delete"); // NOI18N

        Delete.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                DeleteActionPerformed(evt);

            }

        });

        jMenu2.add(Delete);


        jSeparator3.setName("jSeparator3"); // NOI18N

        jMenu2.add(jSeparator3);


        Find.setText("查找(F)...");

        Find.setName("Find"); // NOI18N

        Find.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                FindActionPerformed(evt);

            }

        });

        jMenu2.add(Find);


        Exchange.setText("替换(R)...");

        Exchange.setName("Exchange"); // NOI18N

        Exchange.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                ExchangeActionPerformed(evt);

            }

        });

        jMenu2.add(Exchange);


        jSeparator4.setName("jSeparator4"); // NOI18N

        jMenu2.add(jSeparator4);


        SelectAll.setText("全选(A)");

        SelectAll.setName("SelectAll"); // NOI18N

        SelectAll.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                SelectAllActionPerformed(evt);

            }

        });

        jMenu2.add(SelectAll);


        Time.setText("时间/日期(D)");

        Time.setName("Time"); // NOI18N

        Time.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                TimeActionPerformed(evt);

            }

        });

        jMenu2.add(Time);


        jMenuBar1.add(jMenu2);


        jMenu3.setText("格式(O)");

        jMenu3.setName("jMenu3"); // NOI18N


        Automatic_line.setText("自动换行(W)");

        Automatic_line.setName("Automatic_line"); // NOI18N

        Automatic_line.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                Automatic_lineActionPerformed(evt);

            }

        });

        jMenu3.add(Automatic_line);


        Font.setText("字体(F)...");

        Font.setName("Font"); // NOI18N

        Font.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                FontActionPerformed(evt);

            }

        });

        jMenu3.add(Font);


        jMenuBar1.add(jMenu3);


        jMenu4.setText("帮助(H)");

        jMenu4.setName("jMenu4"); // NOI18N


        About.setText("关于记事本(A)");

        About.setName("About"); // NOI18N

        About.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                AboutActionPerformed(evt);

            }

        });

        jMenu4.add(About);


        jMenuBar1.add(jMenu4);


        setJMenuBar(jMenuBar1);


        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setHorizontalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

        );

        layout.setVerticalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

        );


        pack();

    }// </editor-fold>                        


    private void OpenActionPerformed(java.awt.event.ActionEvent evt) {                //打开功能                      

        String flag = jTextArea1.getText();

        if (flag.isEmpty()) {

            Open();

        } else {

            int select = JOptionPane.showConfirmDialog(this, "文件尚未存盘,要保存吗?");

            switch (select) {

                case JOptionPane.YES_OPTION:

                   SaveAs();

                    break;

                case JOptionPane.NO_OPTION:

                    Open();

                    break;

                default:

                    break;

            }

            // Open();

        }


    }                                    


    private void CreateActionPerformed(java.awt.event.ActionEvent evt) {               //新建功能                        

        String flag = jTextArea1.getText();

        int i;

        if (flag.isEmpty()) {

            new NoteBook().setVisible(true);

            this.setVisible(false);

        } else {

            int select = JOptionPane.showConfirmDialog(this, "文件尚未存盘,要保存吗?");

            switch (select) {

                case JOptionPane.YES_OPTION:

                    SaveAs();

                    break;

                case JOptionPane.NO_OPTION:

                    new NoteBook().setVisible(true);

                    this.setVisible(false);

                    break;

                default:

                    break;

            }

            new NoteBook().setVisible(true);

            this.setVisible(false);

        }

    }                                      


    private void SaveAsActionPerformed(java.awt.event.ActionEvent evt) {                       //l另存为功能                

                   SaveAs();

    }                                      


    private void SaveActionPerformed(java.awt.event.ActionEvent evt) {                             //保存功能        

        Frame f = new Frame();

        FileDialog dl = new FileDialog(f, "保存", FileDialog.SAVE);

        if(file == null){

            dl.setFile("");

        }else{

            dl.setFile(file.getName());    dl.setVisible(true);

        String path= dl.getDirectory();

        String name = dl.getFile();

        if(path!=null&&name!=null){

            jTextArea1.setText(path+name);

            file = new File(path,name);

            Save(file);

        }else{

           Save(file);

        }

        }

      

    }                                    


    private void ExitActionPerformed(java.awt.event.ActionEvent evt) {                    //退出功能                  

        String flag = jTextArea1.getText();

        if (flag.isEmpty()) {

            dispose();

        } else {

            int select = JOptionPane.showConfirmDialog(this, "文件尚未存盘,要保存吗?");

            switch (select) {

                case JOptionPane.YES_OPTION:

                    SaveAs();

                    break;

                case JOptionPane.NO_OPTION:

                    dispose();

                    break;

                default:

                    break;

            }

        }

        this.dispose();

    }                                    


    private void PrintActionPerformed(java.awt.event.ActionEvent evt) {                                      //打印功能

        int select = JOptionPane.showConfirmDialog(this, "无法完成打印任务");

        switch (select) {

            case JOptionPane.YES_OPTION:

                JOptionPane.showMessageDialog(null, "请检查设备连接");

                break;

            case JOptionPane.NO_OPTION:

                break;

            default:

                break;

        }

    }                                     


    private void CutActionPerformed(java.awt.event.ActionEvent evt) {                          //剪切功能          

        jTextArea1.cut();

    }                                   


    private void CopyActionPerformed(java.awt.event.ActionEvent evt) {                            //复制功能         

        jTextArea1.copy();

    }                                    


    private void PasteActionPerformed(java.awt.event.ActionEvent evt) {                                    //粘贴功能  

        jTextArea1.paste();

    }                                     


    private void SelectAllActionPerformed(java.awt.event.ActionEvent evt) {                              //全选功能            

        jTextArea1.selectAll();

    }                                         


    private void TimeActionPerformed(java.awt.event.ActionEvent evt) {                                     //时间日期功能

        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm yyyy/MM/dd");

        jTextArea1.append(sdf.format(new Date()));

    }                                    


    private void FindActionPerformed(java.awt.event.ActionEvent evt) {                           //查找          

        SearchAndExchange();

    }                                    


    private void FontActionPerformed(java.awt.event.ActionEvent evt) {                       //字体              

        Font();

    }                                    


    private void Automatic_lineActionPerformed(java.awt.event.ActionEvent evt) {                //自动换行                               

        if (Automatic_line.getState() == true) {

            jTextArea1.setLineWrap(true);

        } else {

            jTextArea1.setLineWrap(false);

        }


    }                                              


    private void AboutActionPerformed(java.awt.event.ActionEvent evt) {                    //帮助                  

        JOptionPane.showMessageDialog(null, "这是一个记事本");

    }                                     


    private void jTextArea1MousePressed(java.awt.event.MouseEvent evt) {                              //弹出菜单功能          

        if (evt.getModifiers() == InputEvent.BUTTON3_MASK) {

            jPopupMenu1.show(jTextArea1, evt.getX(), evt.getY());

        }

    }                                       


    private void JP_CutActionPerformed(java.awt.event.ActionEvent evt) {                                       

        jTextArea1.cut();

    }                                      


    private void JP_CopyActionPerformed(java.awt.event.ActionEvent evt) {                                        

        jTextArea1.copy();

    }                                       


    private void JP_PasteActionPerformed(java.awt.event.ActionEvent evt) {                                         

        jTextArea1.paste();

    }                                        


    private void JP_SelectAllActionPerformed(java.awt.event.ActionEvent evt) {                                             

        jTextArea1.selectAll();

    }                                            


    

private void JP_DeleteActionPerformed(java.awt.event.ActionEvent evt) {                                         

        int start = jTextArea1.getSelectionStart();

        int end = jTextArea1.getSelectionEnd();

        jTextArea1.replaceRange("", start, end);

    }  

 


  private void ExchangeActionPerformed(java.awt.event.ActionEvent evt) {        //替换功能                                  

        SearchAndExchange();

    }                                        


                       


  private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {                        //删除功能               

        int start = jTextArea1.getSelectionStart();

        int end = jTextArea1.getSelectionEnd();

        jTextArea1.replaceRange("", start, end);//选中的区域用""替换


    }                                      


                    


    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {


            public void run() {

                new NoteBook().setVisible(true);

            }

        });

    }

    // Variables declaration - do not modify                     

    private javax.swing.JMenuItem About;

    private javax.swing.JCheckBoxMenuItem Automatic_line;

    private javax.swing.JMenuItem Copy;

    private javax.swing.JMenuItem Create;

    private javax.swing.JMenuItem Cut;

    private javax.swing.JMenuItem Delete;

    private javax.swing.JMenuItem Exchange;

    private javax.swing.JMenuItem Exit;

    private javax.swing.JMenuItem Find;

    private javax.swing.JMenuItem Font;

    private javax.swing.JMenuItem JP_Copy;

    private javax.swing.JMenuItem JP_Cut;

    private javax.swing.JMenuItem JP_Delete;

    private javax.swing.JMenuItem JP_Paste;

    private javax.swing.JMenuItem JP_SelectAll;

    private javax.swing.JMenuItem Open;

    private javax.swing.JMenuItem Paste;

    private javax.swing.JMenuItem Print;

    private javax.swing.JMenuItem Save;

    private javax.swing.JMenuItem SaveAs;

    private javax.swing.JMenuItem SelectAll;

    private javax.swing.JMenuItem Time;

    private javax.swing.JMenu jMenu1;

    private javax.swing.JMenu jMenu2;

    private javax.swing.JMenu jMenu3;

    private javax.swing.JMenu jMenu4;

    private javax.swing.JMenuBar jMenuBar1;

    private javax.swing.JPanel jPanel1;

    private javax.swing.JPopupMenu jPopupMenu1;

    private javax.swing.JScrollPane jScrollPane1;

    private javax.swing.JPopupMenu.Separator jSeparator1;

    private javax.swing.JPopupMenu.Separator jSeparator2;

    private javax.swing.JPopupMenu.Separator jSeparator3;

    private javax.swing.JPopupMenu.Separator jSeparator4;

    private javax.swing.JTextArea jTextArea1;

    // End of variables declaration                   


    private void SaveAs() {         // 另存为方法

        Frame f = new Frame();

        FileDialog dl = new FileDialog(f, "另存为", FileDialog.SAVE);

        dl.setVisible(true);

        String path= dl.getDirectory();

        String name = dl.getFile();

        try {

            FileWriter fr = new FileWriter(path + name);

            BufferedWriter br = new BufferedWriter(fr);

            String s = jTextArea1.getText();

            br.write(s, 0, s.length());

            

            br.flush();

            br.close();

        } catch (Exception ex) {

        }

        jTextArea1.getText();

    }


    private void Save(File file){       //  保存方法

        try {

            FileWriter fr = new FileWriter(file);

            String s = jTextArea1.getText();

            fr.write(s);

            fr.flush();

            fr.close();

        } catch (Exception ex) {

        }


    }

   

    private void Open() {       //打开方法

        Frame f = new Frame();

        FileDialog dl = new FileDialog(f, "打开文件", FileDialog.LOAD);

        dl.setVisible(true);

        try {

            String path= dl.getDirectory();

            String name = dl.getFile();

            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path + name), "gb2312"));

            jTextArea1.setText("");

            setTitle(name);

            String s = br.readLine();

            while (s != null) {

                jTextArea1.append(s + "\r\n");

                s = br.readLine();

            }

        } catch (Exception ex) {

        }

       // jTextArea1.getText();


    }


    private void SearchAndExchange() {            //替换查找

        try {

            final JDialog jd = new JDialog();

            final JTextField jtf1 = new JTextField(10);

            final JTextField jtf2 = new JTextField(10);

            JPanel sjp1 = new JPanel();

            sjp1.add(jtf1);

            sjp1.add(jtf2);

            jd.add(sjp1);

            JPanel sjp2 = new JPanel();

            JButton jb1 = new JButton("查找");

            JButton jb2 = new JButton("替换");

            sjp2.add(jb1);

            sjp2.add(jb2);

            jd.add(sjp2, BorderLayout.SOUTH);

            jd.setBounds(400, 250, 300, 100);

            jd.setVisible(true);

            jd.setResizable(false);

            jb1.addActionListener(new ActionListener() {


                public void actionPerformed(ActionEvent efind) {

                    String strA = jTextArea1.getText();

                    String strB = jtf1.getText();

                    if (a >= 0) {

                        a = strA.indexOf(strB, StartFindPos);

                        b = strB.length();

                        StartFindPos = a + b;

                        if (a == -1) {

                            JOptionPane.showMessageDialog(null, "没有您要查找的信息", "查找结果", 1);

                            a = 0;

                            StartFindPos = 0;

                        }

                        jTextArea1.select(a, StartFindPos);

                    }

                }

            });

            jb2.addActionListener(new ActionListener() {


                public void actionPerformed(ActionEvent e) {

                    String s = jtf2.getText();

                    int start = jTextArea1.getSelectionStart();

                    int end = jTextArea1.getSelectionEnd();

                    jTextArea1.replaceRange(s, start, end);

                    jd.dispose();

                }

            });


        } catch (Exception efind) {

        }



    }

 

    private void Font() {                              // 字体功能

        final JDialog jd = new JDialog(this, "字体设置");

        jd.setLocation(240, 200);

        GridBagLayout gbl = new GridBagLayout();

        GridBagConstraints gbc = new GridBagConstraints();

        JButton jbOK = new JButton("确定");

        JButton jbCancel = new JButton("取消");

        JTextField jtf1 = new JTextField(6);

        final JTextArea jtaview = new JTextArea(4, 8);

        final JTextField jtf2 = new JTextField(6);

        final JTextField jtf3 = new JTextField(3);

        JComboBox jcb1 = new JComboBox();

        final JComboBox jcb2 = new JComboBox();

        jcb2.addItem("BOLD");

        jcb2.addItem("ITALIC");

        jcb2.addItem("PLAIN");

        jcb2.addActionListener(new ActionListener() {


            public void actionPerformed(ActionEvent e) {

                jtf2.setText((String) jcb2.getSelectedItem());

            }

        });

        final JComboBox jcb3 = new JComboBox();

        jcb3.addItem("14");

        jcb3.addItem("18");

        jcb3.addItem("22");

        jcb3.addItem("26");

        jcb3.addItem("30");

        jcb3.addItem("34");

        jcb3.addActionListener(new ActionListener() {


            public void actionPerformed(ActionEvent e) {

                jtf3.setText((String) jcb3.getSelectedItem());

            }

        });

        gbc.gridheight = 1;

        gbc.gridwidth = 1;

        gbc.weightx = 0.5;

        gbc.weighty = 0.5;

        jd.getContentPane().setLayout(gbl);

        JLabel jl2 = new JLabel("字型:");

        JLabel jl3 = new JLabel("大小:");

        gbc.gridx = 0;

        gbc.gridy = 0;

        jd.getContentPane().add(jl2, gbc);

        gbc.gridx = 2;

        gbc.gridy = 0;

        jd.getContentPane().add(jl3, gbc);

        gbc.gridx = 0;

        gbc.gridy = 1;

        jd.getContentPane().add(jtf2, gbc);

        gbc.gridx = 2;

        gbc.gridy = 1;

        jd.getContentPane().add(jtf3, gbc);

        gbc.gridx = 0;

        gbc.gridy = 2;

        jd.getContentPane().add(jcb2, gbc);

        gbc.gridx = 2;

        gbc.gridy = 2;

        jd.getContentPane().add(jcb3, gbc);

        gbc.gridx = 4;

        gbc.gridy = 1;

        jd.getContentPane().add(jbOK, gbc);

        gbc.gridx = 4;

        gbc.gridy = 2;

        jd.getContentPane().add(jbCancel, gbc);

        jbOK.addActionListener(new ActionListener() {


            public void actionPerformed(ActionEvent e) {

                if (jtf2.getText().equals("PLAIN")) {

                    int fontsize = Integer.parseInt(jtf3.getText());

                    int fontstyle = 0;

                    Font f = new Font("字体设置", fontstyle, fontsize);

                    jTextArea1.setFont(f);

                }

                if (jtf2.getText().equals("BOLD")) {

                    int fontsize = Integer.parseInt(jtf3.getText());

                    int fontstyle = 1;

                    Font f = new Font("字体设置", fontstyle, fontsize);

                    jTextArea1.setFont(f);

                }

                if (jtf2.getText().equals("ITALIC")) {

                    int fontsize = Integer.parseInt(jtf3.getText());

                    int fontstyle = 2;

                    Font f = new Font("字体设置", fontstyle, fontsize);

                    jTextArea1.setFont(f);

                }

                jd.dispose();

            }

        });

        jbCancel.addActionListener(new ActionListener() {


            public void actionPerformed(ActionEvent e) {

                jd.dispose();

            }

        });

        jd.setSize(200, 120);

        jd.setResizable(false);

        jd.setVisible(true);

        jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    }

}