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

📄 jxfindbar.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * $Id: JXFindBar.java,v 1.9 2005/10/12 11:26:56 kleopatra 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;import java.awt.Color;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.KeyStroke;import javax.swing.SwingConstants;/** * A simple low-intrusion default widget for incremental search. *  * Actions registered (in addition to super): * <ul> * <li> {@link JXDialog#CLOSE_ACTION_COMMAND} - an action bound to this * component's cancel method. The method itself is an empty implementation: * Subclassing clients can override the method, all clients can register a * custom action. * </ul> *  * Key bindings: * <ul> * <li> ESCAPE - calls action registered for * {@link JXDialog#CLOSE_ACTION_COMMAND} * </ul> *  * This implementation uses textfield coloring as not-found visualization. *  * <p> * PENDING: the coloring needs to be read from the UIManager instead of * hardcoding. *  * <p> * PENDING: the state transition of found/non-found coloring needs clean-up - * there are spurious problems when re-using the same instance (as SearchFactory * does). *  * @author Jeanette Winzenburg *  */public class JXFindBar extends JXFindPanel {    protected Color previousBackgroundColor;    protected Color previousForegroundColor;    // PENDING: need to read from UIManager    protected Color notFoundBackgroundColor = Color.decode("#FF6666");    protected Color notFoundForegroundColor = Color.white;    protected JButton findNext;    protected JButton findPrevious;    public JXFindBar() {        this(null);    }    public JXFindBar(Searchable searchable) {        super(searchable);        getPatternModel().setIncremental(true);    }    @Override    public void setSearchable(Searchable searchable) {        super.setSearchable(searchable);        match();    }    /**     * here: set textfield colors to not-found colors.     */    @Override    protected void showNotFoundMessage() {        searchField.setForeground(notFoundForegroundColor);        searchField.setBackground(notFoundBackgroundColor);    }    /**     * here: set textfield colors to normal.     */    @Override    protected void showFoundMessage() {        searchField.setBackground(previousBackgroundColor);        searchField.setForeground(previousForegroundColor);    }    @Override    public void addNotify() {        super.addNotify();        if (previousBackgroundColor == null) {            previousBackgroundColor = searchField.getBackground();            previousForegroundColor = searchField.getForeground();        } else {            searchField.setBackground(previousBackgroundColor);            searchField.setForeground(previousForegroundColor);        }    }    // --------------------------- action call back    /**     * Action callback method for bound action JXDialog.CLOSE_ACTION_COMMAND.     *      * Here: does nothing. Subclasses can override to define custom "closing"     * behaviour. Alternatively, any client can register a custom action with     * the actionMap.     *      *      */    public void cancel() {    }    // -------------------- init    @Override    protected void initExecutables() {        getActionMap().put(JXDialog.CLOSE_ACTION_COMMAND,                createBoundAction(JXDialog.CLOSE_ACTION_COMMAND, "cancel"));        super.initExecutables();    }    @Override    protected void bind() {        super.bind();        searchField                .addActionListener(getAction(JXDialog.EXECUTE_ACTION_COMMAND));        findNext.setAction(getAction(FIND_NEXT_ACTION_COMMAND));        findPrevious.setAction(getAction(FIND_PREVIOUS_ACTION_COMMAND));        KeyStroke stroke = KeyStroke.getKeyStroke("ESCAPE");        getInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(stroke,                JXDialog.CLOSE_ACTION_COMMAND);    }    @Override    protected void build() {        setLayout(new FlowLayout(SwingConstants.LEADING));        add(searchLabel);        add(new JLabel(":"));        add(new JLabel("  "));        add(searchField);        add(findNext);        add(findPrevious);    }    @Override    protected void initComponents() {        super.initComponents();        findNext = new JButton();        findPrevious = new JButton();    }}

⌨️ 快捷键说明

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