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

📄 incrementalsearch.java

📁 可被搜索的文本组件
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.*;import java.util.regex.*;public class IncrementalSearch implements DocumentListener, ActionListener {    protected JTextComponent content;    protected Matcher matcher;    public IncrementalSearch(JTextComponent comp) {        this.content = comp;    }        /* DocumentListener implementation */    public void insertUpdate(DocumentEvent evt) {        runNewSearch(evt.getDocument());    }    public void removeUpdate(DocumentEvent evt) {        runNewSearch(evt.getDocument());    }    public void changedUpdate(DocumentEvent evt) {        runNewSearch(evt.getDocument());    }        /* ActionListener implementation */    public void actionPerformed(ActionEvent evt) {        continueSearch();    }        private void runNewSearch(Document query_doc) {        try {            String query = query_doc.getText(0,query_doc.getLength());            Pattern pattern = Pattern.compile(query);            Document content_doc = content.getDocument();            String body = content_doc.getText(0,content_doc.getLength());            matcher = pattern.matcher(body);            continueSearch();        } catch (Exception ex) {            p("exception: " + ex);            ex.printStackTrace();        }    }        private void continueSearch() {        if(matcher != null) {            if(matcher.find()) {                content.getCaret().setDot(matcher.start());                content.getCaret().moveDot(matcher.end());                content.getCaret().setSelectionVisible(true);            }        }    }                    public static void main(String[] args) {        JTextArea text_area = new JTextArea(15,30);        JScrollPane scroll = new JScrollPane(text_area);        IncrementalSearch isearch = new IncrementalSearch(text_area);        JTextField search_field = new JTextField();        search_field.getDocument().addDocumentListener(isearch);        search_field.addActionListener(isearch);                JFrame frame = new JFrame("Incremental Search Hack");        frame.getContentPane().add("North",search_field);        frame.getContentPane().add("Center",scroll);        frame.pack();        frame.show();    }        public static void p(String str) {        System.out.println(str);    }}

⌨️ 快捷键说明

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