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

📄 fandr.java

📁 一个简单的Java编写的写字板的源代码
💻 JAVA
字号:
package wordpad;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; 
import javax.swing.text.*;
import wordpad.WordPad;

public class FandR extends JDialog implements ActionListener
{
    private Find find = null;
    private Replace replace = null;
    private String s, s1;
    private int start;
    private int end;
    private JTabbedPane fandr = new JTabbedPane();
    public FandR(JFrame f)
    {
        super(f, "查找和替换");
        find = new Find();
        replace = new Replace();
        fandr.add(find, "查找");
        fandr.add(replace, "替换");
        add(fandr, BorderLayout.CENTER);
        
        setSize(389,167);
        setLocation(46,245);
        setVisible(true);
        
        find.findnext.addActionListener(this);
        find.cancel.addActionListener(this);
        replace.findnext.addActionListener(this);
        replace.replace.addActionListener(this);
        replace.replaceall.addActionListener(this);
        replace.cancel.addActionListener(this);
    }
    class Find extends JPanel
    {
        private JTextField findtext = new JTextField(20);
        private JLabel findtext1 = new JLabel("查找内容:(W)");
        private JButton findnext = new JButton("查找下一个(F)");
        private JButton cancel = new JButton("取消");
        public Find()
        {
            findtext.setText(WordPad.TextArea.getSelectedText());
            JPanel p1 = new JPanel();
            p1.add(findtext1);
            p1.add(findtext);
            JPanel p2 = new JPanel();
            p2.add(findnext);
            p2.add(cancel);
            setLayout(new BorderLayout());
            add(p1,BorderLayout.NORTH);
            add(p2,BorderLayout.SOUTH);
            
            setVisible(true);
        }
    }
    class Replace extends JPanel
    {
        private JTextField findtext = new JTextField(20);
        private JTextField replacetext = new JTextField(20);
        private JLabel findtext1 = new JLabel("查找内容:(N)");
        private JLabel replacetext1 = new JLabel("替换为:(P)");
        private JButton findnext  = new JButton("查找下一个(F)");
        private JButton replace = new JButton("替换(R)");
        private JButton replaceall = new JButton("替换全部(A)");
        private JButton cancel = new JButton("取消");
        public Replace()
        {
            findtext.setText(WordPad.TextArea.getSelectedText());
            JPanel p1 = new JPanel();
            p1.add(findtext1);
            p1.add(findtext);
            JPanel p2 = new JPanel();
            p2.add(replacetext1);
            p2.add(replacetext);
            JPanel p3 = new JPanel();
            p3.add(findnext);
            p3.add(replace);
            p3.add(replaceall);
            p3.add(cancel);
            setLayout(new BorderLayout());
            add("North",p1);
            add("Center",p2);
            add("South",p3);
            
            setVisible(true);
            setResizable(false);
        }
}
    
    JTabbedPane getTabbedPane()
    {
        return fandr;
    }
    
    void NotFound()
    {
            start = 0;
            end = 0;
            WordPad.TextArea.setCaretPosition(0);
            JOptionPane.showMessageDialog(null,"写字板 已完成对文档的搜索,未找到搜索项。","写字板",JOptionPane.ERROR_MESSAGE);
    }
    
    Boolean FindNext(String find)
    {
        start = WordPad.TextArea.getText().indexOf(find, end);
        if(start==-1)
        {
            NotFound();
            return false;
        }
        end = start + find.length();
        WordPad.TextArea.select(start, end);
        return true;
    }
    
    void Replace(String find, String replace)
    {
        if(WordPad.TextArea.getSelectedText()!=null && !WordPad.TextArea.getSelectedText().equals(replace))
        {
            WordPad.TextArea.replaceSelection(replace);
        }
        else
        {
            if(FindNext(find))
                WordPad.TextArea.replaceSelection(replace);
        }
    }
    
    void ReplaceAll(String find, String replace)
    {
        start = 0;
        end = 0;
        while(FindNext(find))
        {
            WordPad.TextArea.replaceSelection(replace);
        }
    }
    
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==find.findnext)
            FindNext(find.findtext.getText());
        else if(e.getSource()==replace.findnext)
            FindNext(replace.findtext.getText());
        else if(e.getSource()==replace.replace)
            Replace(replace.findtext.getText(), replace.replacetext.getText());
        else if(e.getSource()==replace.replaceall)
            ReplaceAll(replace.findtext.getText(), replace.replacetext.getText());
        else if(e.getSource()==find.cancel || e.getSource()==replace.cancel)
            this.dispose();
    }
}

⌨️ 快捷键说明

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