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

📄 synthtextareaui.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/* * @(#)SynthTextAreaUI.java	1.11 08/05/30 * * 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.BasicTextAreaUI;import java.awt.*;import java.awt.event.FocusListener;import java.awt.event.FocusEvent;import java.beans.PropertyChangeEvent;import sun.swing.plaf.synth.SynthUI;/** * Provides the look and feel for a plain text editor in the * Synth look and feel. In this implementation the default UI * is extended to act as a simple view factory. * <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.11 05/30/08 */class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI, FocusListener {    private SynthStyle style;    /**     * Creates a UI for a JTextArea.     *     * @param ta a text area     * @return the UI     */    public static ComponentUI createUI(JComponent ta) {        return new SynthTextAreaUI();    }    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);    }    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();    }    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);        context.getPainter().paintTextAreaBackground(context,                          g, 0, 0, c.getWidth(), c.getHeight());        paint(context, g);        context.dispose();    }    protected void paint(SynthContext context, Graphics g) {        super.paint(g, getComponent());    }    protected void paintBackground(Graphics g) {        // Overriden to do nothing, all our painting is done from update/paint.    }    public void paintBorder(SynthContext context, Graphics g, int x,                            int y, int w, int h) {        context.getPainter().paintTextAreaBorder(context, g, x, y, w, h);    }    /**     * 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 rebuild the View when the     * <em>WrapLine</em> or the <em>WrapStyleWord</em> property changes.     *     * @param evt the property change event     */    protected void propertyChange(PropertyChangeEvent evt) {        if (SynthLookAndFeel.shouldUpdateStyle(evt)) {            updateStyle((JTextComponent)evt.getSource());        }        super.propertyChange(evt);    }}

⌨️ 快捷键说明

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