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

📄 imagepainter.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * @(#)ImagePainter.java	1.12 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 java.awt.*;import java.lang.ref.WeakReference;import java.net.*;import javax.swing.*;import sun.awt.AppContext;import sun.swing.plaf.synth.Paint9Painter;/** * ImagePainter fills in the specified region using an Image. The Image * is split into 9 segments: north, north east, east, south east, south, * south west, west, north west and the center. The corners are defined * by way of an insets, and the remaining regions are either tiled or * scaled to fit. * * @version 1.12, 11/17/05 * @author Scott Violet */class ImagePainter extends SynthPainter {    private static final StringBuffer CACHE_KEY =                               new StringBuffer("SynthCacheKey");    private Image image;    private Insets sInsets;    private Insets dInsets;    private URL path;    private boolean tiles;    private boolean paintCenter;    private Paint9Painter imageCache;    private boolean center;    private static Paint9Painter getPaint9Painter() {        // A SynthPainter is created per <imagePainter>.  We want the        // cache to be shared by all, and we don't use a static because we        // don't want it to persist between look and feels.  For that reason        // we use a AppContext specific Paint9Painter.  It's backed via        // a WeakRef so that it can go away if the look and feel changes.        synchronized(CACHE_KEY) {            WeakReference<Paint9Painter> cacheRef =                     (WeakReference<Paint9Painter>)AppContext.getAppContext().                     get(CACHE_KEY);            Paint9Painter painter;            if (cacheRef == null || (painter = cacheRef.get()) == null) {                painter = new Paint9Painter(30);                cacheRef = new WeakReference(painter);                AppContext.getAppContext().put(CACHE_KEY, cacheRef);            }            return painter;        }    }    ImagePainter(boolean tiles, boolean paintCenter,                  Insets sourceInsets, Insets destinationInsets, URL path,                 boolean center) {        if (sourceInsets != null) {            this.sInsets = (Insets)sourceInsets.clone();        }        if (destinationInsets == null) {            dInsets = sInsets;        }        else {            this.dInsets = (Insets)destinationInsets.clone();        }        this.tiles = tiles;        this.paintCenter = paintCenter;        this.imageCache = getPaint9Painter();        this.path = path;        this.center = center;    }    public boolean getTiles() {        return tiles;    }    public boolean getPaintsCenter() {        return paintCenter;    }    public boolean getCenter() {        return center;    }    public Insets getInsets(Insets insets) {        if (insets == null) {            return (Insets)this.dInsets.clone();        }        insets.left = this.dInsets.left;        insets.right = this.dInsets.right;        insets.top = this.dInsets.top;        insets.bottom = this.dInsets.bottom;        return insets;    }    public Image getImage() {        if (image == null) {            image = new ImageIcon(path, null).getImage();        }        return image;    }    private void paint(SynthContext context, Graphics g, int x, int y, int w,                       int h) {        Image image = getImage();        if (Paint9Painter.validImage(image)) {            Paint9Painter.PaintType type;            if (getCenter()) {                type = Paint9Painter.PaintType.CENTER;            }            else if (!getTiles()) {                type = Paint9Painter.PaintType.PAINT9_STRETCH;            }            else {                type = Paint9Painter.PaintType.PAINT9_TILE;            }            int mask = Paint9Painter.PAINT_ALL;            if (!getCenter() && !getPaintsCenter()) {                mask |= Paint9Painter.PAINT_CENTER;            }            imageCache.paint(context.getComponent(), g, x, y, w, h,                             image, sInsets, dInsets, type,                             mask);        }    }    // SynthPainter    public void paintArrowButtonBackground(SynthContext context,                                           Graphics g, int x, int y,                                           int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintArrowButtonBorder(SynthContext context,                                       Graphics g, int x, int y,                                       int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintArrowButtonForeground(SynthContext context,                                           Graphics g, int x, int y,                                           int w, int h,                                           int direction) {        paint(context, g, x, y, w, h);    }    // BUTTON    public void paintButtonBackground(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintButtonBorder(SynthContext context,                                  Graphics g, int x, int y,                                  int w, int h) {        paint(context, g, x, y, w, h);    }    // CHECK_BOX_MENU_ITEM    public void paintCheckBoxMenuItemBackground(SynthContext context,                                                Graphics g, int x, int y,                                                int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintCheckBoxMenuItemBorder(SynthContext context,                                            Graphics g, int x, int y,                                            int w, int h) {        paint(context, g, x, y, w, h);    }    // CHECK_BOX    public void paintCheckBoxBackground(SynthContext context,                                        Graphics g, int x, int y,                                        int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintCheckBoxBorder(SynthContext context,                                    Graphics g, int x, int y,                                    int w, int h) {        paint(context, g, x, y, w, h);    }    // COLOR_CHOOSER    public void paintColorChooserBackground(SynthContext context,                                            Graphics g, int x, int y,                                            int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintColorChooserBorder(SynthContext context,                                        Graphics g, int x, int y,                                        int w, int h) {        paint(context, g, x, y, w, h);    }    // COMBO_BOX    public void paintComboBoxBackground(SynthContext context,                                        Graphics g, int x, int y,                                        int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintComboBoxBorder(SynthContext context,                                        Graphics g, int x, int y,                                        int w, int h) {        paint(context, g, x, y, w, h);    }    // DESKTOP_ICON    public void paintDesktopIconBackground(SynthContext context,                                        Graphics g, int x, int y,                                        int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintDesktopIconBorder(SynthContext context,                                           Graphics g, int x, int y,                                           int w, int h) {        paint(context, g, x, y, w, h);    }    // DESKTOP_PANE    public void paintDesktopPaneBackground(SynthContext context,                                           Graphics g, int x, int y,                                           int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintDesktopPaneBorder(SynthContext context,                                       Graphics g, int x, int y,                                       int w, int h) {        paint(context, g, x, y, w, h);    }    // EDITOR_PANE    public void paintEditorPaneBackground(SynthContext context,                                          Graphics g, int x, int y,                                          int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintEditorPaneBorder(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    // FILE_CHOOSER    public void paintFileChooserBackground(SynthContext context,                                          Graphics g, int x, int y,                                          int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintFileChooserBorder(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    // FORMATTED_TEXT_FIELD    public void paintFormattedTextFieldBackground(SynthContext context,                                          Graphics g, int x, int y,                                          int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintFormattedTextFieldBorder(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    // INTERNAL_FRAME_TITLE_PANE    public void paintInternalFrameTitlePaneBackground(SynthContext context,                                          Graphics g, int x, int y,                                          int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintInternalFrameTitlePaneBorder(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    // INTERNAL_FRAME    public void paintInternalFrameBackground(SynthContext context,                                          Graphics g, int x, int y,                                          int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintInternalFrameBorder(SynthContext context,                                      Graphics g, int x, int y,                                      int w, int h) {        paint(context, g, x, y, w, h);    }    // LABEL    public void paintLabelBackground(SynthContext context,                                     Graphics g, int x, int y,                                     int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintLabelBorder(SynthContext context,                                 Graphics g, int x, int y,                                 int w, int h) {        paint(context, g, x, y, w, h);    }    // LIST    public void paintListBackground(SynthContext context,                                     Graphics g, int x, int y,                                     int w, int h) {        paint(context, g, x, y, w, h);    }    public void paintListBorder(SynthContext context,                                 Graphics g, int x, int y,                                 int w, int h) {        paint(context, g, x, y, w, h);    }    // MENU_BAR

⌨️ 快捷键说明

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