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

📄 searchhighlighter.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * $Id: SearchHighlighter.java,v 1.7 2005/10/10 18:02:36 rbair Exp $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */package org.jdesktop.swingx.decorator;import java.awt.Color;import java.util.regex.Pattern;/** * Convenience Highlighter to test and highlight cells in searching. *   * @author Jeanette Winzenburg */public class SearchHighlighter extends PatternHighlighter {    /** the row to highlight in view coordinates. -1 means all */    int highlightRow;    private boolean enableHighlight;    private static final String ALL = ".*";        /**     * Instantiates a default SearchHighlighter.      * The default colors are Yellow background and null foreground.     * The default matching state is      *  Pattern == null, flags = 0, tests all columns and all rows.     *      */    public SearchHighlighter() {        this(Color.YELLOW.brighter(), null);    }        /**     * Instantiates a default SearchHighlighter with background/foreground colors.     * The default matching state is      *  Pattern == null, flags = 0, tests all columns and all rows.     *      * @param background color of hightlight background     * @param foreground color of highlight foreground     */    public SearchHighlighter(Color background, Color foreground) {        super(background, foreground, null, 0, -1);        setHighlightRow(-1);    }    /**     * Toggle to enable/disable - if disabled never hightlights.     *      * @param enableHighlight     */    public void setEnabled(boolean enableHighlight) {        this.enableHighlight = enableHighlight;        fireStateChanged();    }        protected boolean needsHighlight(ComponentAdapter adapter) {        if (!isEnabled()) return false;        if (highlightRow >= 0 && (adapter.row != highlightRow)) {            return false;        }        return super.needsHighlight(adapter);    }    private boolean isEnabled() {        Pattern pattern = getPattern();        if (pattern == null || ALL.equals(pattern.pattern())) {            return false;        }        return enableHighlight;    }    protected boolean test(ComponentAdapter adapter) {        if (pattern == null) {            return false;        }        int columnToTest = testColumn;        // use one highlighter for all columns        if (columnToTest < 0) {            columnToTest = adapter.viewToModel(adapter.column);        }        Object  value = adapter.getFilteredValueAt(adapter.row, columnToTest);        if (value == null) {            return false;        }        else {            boolean matches = pattern.matcher(value.toString()).find();            return matches;        }    }    /** set the row to match in test.      * - 1 means all.     * @param row     */    public void setHighlightRow(int row) {        highlightRow = row;        fireStateChanged();    }    /**      * convenience method to test and highlight all rows/columns and      * enable.     *     */    public void setHighlightAll() {        setHighlightCell(-1, -1);            }    /**     * Set's highlightRow to row, test- and highlight column = column     * @param row     * @param modelColumn     */    public void setHighlightCell(int row, int modelColumn) {        this.testColumn = modelColumn;        this.highlightColumn = modelColumn;        this.highlightRow = row;        setEnabled(true);    }}

⌨️ 快捷键说明

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