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

📄 synthcontext.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/* * @(#)SynthContext.java	1.10 05/11/17 * * 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 java.util.*;/** * An immutable transient object containing contextual information about * a <code>Region</code>. A <code>SynthContext</code> should only be * considered valid for the duration * of the method it is passed to. In other words you should not cache * a <code>SynthContext</code> that is passed to you and expect it to * remain valid. * * @version 1.10, 11/17/05 * @since 1.5 * @author Scott Violet */public class SynthContext {    private static final Map contextMap;    private JComponent component;    private Region region;    private SynthStyle style;    private int state;    static {        contextMap = new HashMap();    }    static SynthContext getContext(Class type, JComponent component,                                   Region region, SynthStyle style,                                   int state) {        SynthContext context = null;        synchronized(contextMap) {            java.util.List instances = (java.util.List)contextMap.get(type);            if (instances != null) {                int size = instances.size();                if (size > 0) {                    context = (SynthContext)instances.remove(size - 1);                }            }        }        if (context == null) {            try {                context = (SynthContext)type.newInstance();            } catch (IllegalAccessException iae) {            } catch (InstantiationException ie) {            }        }        context.reset(component, region, style, state);        return context;    }    static void releaseContext(SynthContext context) {        synchronized(contextMap) {            java.util.List instances = (java.util.List)contextMap.get(                                       context.getClass());            if (instances == null) {                instances = new ArrayList(5);                contextMap.put(context.getClass(), instances);            }            instances.add(context);        }    }    SynthContext() {    }    /**     * Creates a SynthContext with the specified values. This is meant     * for subclasses and custom UI implementors. You very rarely need to     * construct a SynthContext, though some methods will take one.     *     * @param component JComponent     * @param region Identifies the portion of the JComponent     * @param style Style associated with the component     * @param state State of the component as defined in SynthConstants.     * @throws NullPointerException if component, region of style is null.     */    public SynthContext(JComponent component, Region region, SynthStyle style,                        int state) {        if (component == null || region == null || style == null) {            throw new NullPointerException(                "You must supply a non-null component, region and style");        }        reset(component, region, style, state);    }    /**     * Returns the hosting component containing the region.     *     * @return Hosting Component      */    public JComponent getComponent() {        return component;    }    /**     * Returns the Region identifying this state.     *     * @return Region of the hosting component     */    public Region getRegion() {        return region;    }    /**     * A convenience method for <code>getRegion().isSubregion()</code>.     */    boolean isSubregion() {        return getRegion().isSubregion();    }    void setStyle(SynthStyle style) {        this.style = style;    }    /**     * Returns the style associated with this Region.     *     * @return SynthStyle associated with the region.     */    public SynthStyle getStyle() {        return style;    }    void setComponentState(int state) {        this.state = state;    }    /**     * Returns the state of the widget, which is a bitmask of the     * values defined in <code>SynthConstants</code>. A region will at least     * be in one of     * <code>ENABLED</code>, <code>MOUSE_OVER</code>, <code>PRESSED</code>     * or <code>DISABLED</code>.     *     * @see SynthConstants     * @return State of Component     */    public int getComponentState() {        return state;    }    /**     * Resets the state of the Context.     */    void reset(JComponent component, Region region, SynthStyle style,               int state) {        this.component = component;        this.region = region;        this.style = style;        this.state = state;    }    void dispose() {        this.component = null;        this.style = null;        releaseContext(this);    }    /**     * Convenience method to get the Painter from the current SynthStyle.     * This will NEVER return null.     */    SynthPainter getPainter() {        SynthPainter painter = getStyle().getPainter(this);        if (painter != null) {            return painter;        }        return SynthPainter.NULL_PAINTER;    }}

⌨️ 快捷键说明

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