108 lines · 3.5 KB · Java
RawDownload
/* * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */package javax.swing.plaf.basic; import java.awt.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.event.*;import javax.swing.plaf.*;  /** * Provides the Windows look and feel for a password field. * The only difference from the standard text field is that * the view of the text is simply a string of the echo * character as specified in JPasswordField, rather than the * real text contained in the field. * * @author  Timothy Prinzing */public class BasicPasswordFieldUI extends BasicTextFieldUI {     /**     * Creates a UI for a JPasswordField.     *     * @param c the JPasswordField     * @return the UI     */    public static ComponentUI createUI(JComponent c) {        return new BasicPasswordFieldUI();    }     /**     * Fetches the name used as a key to look up properties through the     * UIManager.  This is used as a prefix to all the standard     * text properties.     *     * @return the name ("PasswordField")     */    protected String getPropertyPrefix() {        return "PasswordField";    }      /**     * Installs the necessary properties on the JPasswordField.     * @since 1.6     */    protected void installDefaults() {        super.installDefaults();        String prefix = getPropertyPrefix();        Character echoChar = (Character)UIManager.getDefaults().get(prefix + ".echoChar");        if(echoChar != null) {            LookAndFeel.installProperty(getComponent(), "echoChar", echoChar);        }    }     /**     * Creates a view (PasswordView) for an element.     *     * @param elem the element     * @return the view     */    public View create(Element elem) {        return new PasswordView(elem);    }     /**     * Create the action map for Password Field.  This map provides     * same actions for double mouse click and     * and for triple mouse click (see bug 4231444).     */     ActionMap createActionMap() {        ActionMap map = super.createActionMap();        if (map.get(DefaultEditorKit.selectWordAction) != null) {            Action a = map.get(DefaultEditorKit.selectLineAction);            if (a != null) {                map.remove(DefaultEditorKit.selectWordAction);                map.put(DefaultEditorKit.selectWordAction, a);            }        }        return map;    } }