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

📄 synthtextfieldui.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/* * @(#)SynthTextFieldUI.java	1.13 07/03/15 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.plaf.synth;import javax.swing.*;import javax.swing.text.*;import javax.swing.event.*;import javax.swing.plaf.*;import javax.swing.plaf.basic.BasicTextFieldUI;import java.awt.*;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.beans.PropertyChangeEvent;import sun.swing.plaf.synth.SynthUI;/** * Basis of a look and feel for a JTextField in the Synth * look and feel. * <p> * <strong>Warning:</strong> * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing.  As of 1.4, support for long term storage * of all JavaBeans<sup><font size="-2">TM</font></sup> * has been added to the <code>java.beans</code> package. * Please see {@link java.beans.XMLEncoder}. * * @author  Shannon Hickey * @version 1.13 03/15/07 */class SynthTextFieldUI    extends BasicTextFieldUI    implements SynthUI, FocusListener{    private SynthStyle style;    /**     * Creates a UI for a JTextField.     *     * @param c the text field     * @return the UI     */    public static ComponentUI createUI(JComponent c) {        return new SynthTextFieldUI();    }    public SynthTextFieldUI() {        super();    }    private void updateStyle(JTextComponent comp) {        SynthContext context = getContext(comp, ENABLED);        SynthStyle oldStyle = style;        style = SynthLookAndFeel.updateStyle(context, this);        if (style != oldStyle) {            SynthTextFieldUI.updateStyle(comp, context, getPropertyPrefix());            if (oldStyle != null) {                uninstallKeyboardActions();                installKeyboardActions();            }        }        context.dispose();    }    static void updateStyle(JTextComponent comp, SynthContext context,            String prefix) {        SynthStyle style = context.getStyle();        Color color = comp.getCaretColor();        if (color == null || color instanceof UIResource) {            comp.setCaretColor(                (Color)style.get(context, prefix + ".caretForeground"));        }                Color fg = comp.getForeground();        if (fg == null || fg instanceof UIResource) {            fg = style.getColorForState(context, ColorType.TEXT_FOREGROUND);            if (fg != null) {                comp.setForeground(fg);            }        }               Object ar = style.get(context, prefix + ".caretAspectRatio");        if (ar instanceof Number) {            comp.putClientProperty("caretAspectRatio", ar);        }        context.setComponentState(SELECTED | FOCUSED);                Color s = comp.getSelectionColor();        if (s == null || s instanceof UIResource) {            comp.setSelectionColor(                style.getColor(context, ColorType.TEXT_BACKGROUND));        }                Color sfg = comp.getSelectedTextColor();        if (sfg == null || sfg instanceof UIResource) {            comp.setSelectedTextColor(                style.getColor(context, ColorType.TEXT_FOREGROUND));        }                    context.setComponentState(DISABLED);                    Color dfg = comp.getDisabledTextColor();        if (dfg == null || dfg instanceof UIResource) {            comp.setDisabledTextColor(                style.getColor(context, ColorType.TEXT_FOREGROUND));        }                    Insets margin = comp.getMargin();        if (margin == null || margin instanceof UIResource) {            margin = (Insets)style.get(context, prefix + ".margin");            if (margin == null) {                // Some places assume margins are non-null.                margin = SynthLookAndFeel.EMPTY_UIRESOURCE_INSETS;            }            comp.setMargin(margin);        }                    Caret caret = comp.getCaret();        if (caret instanceof UIResource) {            Object o = style.get(context, prefix + ".caretBlinkRate");            if (o != null && o instanceof Integer) {                Integer rate = (Integer)o;                caret.setBlinkRate(rate.intValue());            }        }    }    public SynthContext getContext(JComponent c) {        return getContext(c, getComponentState(c));    }    private SynthContext getContext(JComponent c, int state) {        return SynthContext.getContext(SynthContext.class, c,                    SynthLookAndFeel.getRegion(c), style, state);    }    private int getComponentState(JComponent c) {        return SynthLookAndFeel.getComponentState(c);    }    public void update(Graphics g, JComponent c) {        SynthContext context = getContext(c);        SynthLookAndFeel.update(context, g);        paintBackground(context, g, c);        paint(context, g);        context.dispose();    }    /**     * Paints the interface.  This is routed to the     * paintSafely method under the guarantee that     * the model won't change from the view of this thread     * while it's rendering (if the associated model is     * derived from AbstractDocument).  This enables the     * model to potentially be updated asynchronously.     */    protected void paint(SynthContext context, Graphics g) {        super.paint(g, getComponent());    }    void paintBackground(SynthContext context, Graphics g, JComponent c) {        context.getPainter().paintTextFieldBackground(context, g, 0, 0,                                                c.getWidth(), c.getHeight());    }    public void paintBorder(SynthContext context, Graphics g, int x,                            int y, int w, int h) {        context.getPainter().paintTextFieldBorder(context, g, x, y, w, h);    }    protected void paintBackground(Graphics g) {        // Overriden to do nothing, all our painting is done from update/paint.    }    /**     * This method gets called when a bound property is changed     * on the associated JTextComponent.  This is a hook     * which UI implementations may change to reflect how the     * UI displays bound properties of JTextComponent subclasses.     * This is implemented to do nothing (i.e. the response to     * properties in JTextComponent itself are handled prior     * to calling this method).     *     * @param evt the property change event     */    protected void propertyChange(PropertyChangeEvent evt) {        if (SynthLookAndFeel.shouldUpdateStyle(evt)) {            updateStyle((JTextComponent)evt.getSource());        }        super.propertyChange(evt);    }    public void focusGained(FocusEvent e) {        getComponent().repaint();    }    public void focusLost(FocusEvent e) {        getComponent().repaint();    }    protected void installDefaults() {        // Installs the text cursor on the component        super.installDefaults();        updateStyle((JTextComponent)getComponent());        getComponent().addFocusListener(this);    }    protected void uninstallDefaults() {        SynthContext context = getContext(getComponent(), ENABLED);        getComponent().putClientProperty("caretAspectRatio", null);        getComponent().removeFocusListener(this);        style.uninstallDefaults(context);        context.dispose();        style = null;        super.uninstallDefaults();    }    public void installUI(JComponent c) {        super.installUI(c);    }}

⌨️ 快捷键说明

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