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

📄 fontsizer.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/omGraphics/FontSizer.java,v $// $RCSfile: FontSizer.java,v $// $Revision: 1.2.2.5 $// $Date: 2005/09/06 20:01:21 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.omGraphics;import java.awt.Font;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;/** * Helper class to OMText object that resizes font when scale changes. * Font gets bigger as you zoom in. */public class FontSizer implements Serializable {    protected transient Font font = OMText.DEFAULT_FONT;    protected transient Font lastFont = OMText.DEFAULT_FONT;    protected float baseScale = -1;    protected transient float lastScale = -1;    protected transient float curScale = -1;    protected int minPointSize = font.getSize();    protected int maxPointSize = font.getSize();    /**     * Default of 1. Used against the base scale/current scale ratio     * to speed up or slow down font size changes based on scale.     */    protected int multiplier = 1;    /**     * @param font the font to use as the base font.     * @param baseScale the scale where the base font is shown at its     *        natural size.     * @param multiplier to use against the ratio of base     *        scale:current scale.     * @param minPointSize the minimum point size to use for the     *        scaled font.     * @param maxPointSize the maximum point size to use for the     *        scaled font.     */    public FontSizer(Font font, float baseScale, int multiplier,            int minPointSize, int maxPointSize) {        this(baseScale, multiplier, minPointSize, maxPointSize);        this.font = font;    }    /**     * Contructor that uses the OMText DEFAULT_FONT as the base font.     *      * @param baseScale the scale where the base font is shown at its     *        natural size.     * @param multiplier to use against the ratio of base     *        scale:current scale.     * @param minPointSize the minimum point size to use for the     *        scaled font.     * @param maxPointSize the maximum point size to use for the     *        scaled font.     */    public FontSizer(float baseScale, int multiplier, int minPointSize,            int maxPointSize) {        this.baseScale = baseScale;        this.multiplier = multiplier;        this.minPointSize = minPointSize;        this.maxPointSize = maxPointSize;    }    /**     * Set the base font.     */    public void setFont(Font font) {        this.font = font;    }    /**     * Get a font sized for the scale, given the size restrictions.     */    public Font getFont(float scale) {        curScale = scale;        return getScaledFont();    }    protected Font getScaledFont() {        if (lastScale != curScale) {            lastScale = curScale;            if (baseScale < 0 || curScale < 0) {                lastFont = font;            } else {                int newFontSize = multiplier                        * (int) ((baseScale / curScale) * (float) font.getSize());                if (newFontSize > maxPointSize) {                    newFontSize = maxPointSize;                } else if (newFontSize < minPointSize) {                    newFontSize = minPointSize;                }                lastFont = new Font(font.getName(), font.getStyle(), newFontSize);            }        }        return lastFont;    }    /**     * Get the base font.     */    public Font getFont() {        return font;    }    public void setMultiplier(int mul) {        lastScale = -1;        multiplier = mul;    }    public int getMultiplier() {        return multiplier;    }    private void writeObject(ObjectOutputStream oos) throws IOException {        oos.defaultWriteObject();        // Write the Font. Take into account the font member could be        // null, although this is unlikely it never hurts to        // protect one's self.        boolean writeFont = (font != OMText.DEFAULT_FONT);        // First write a flag indicating if a Font is on the stream.        oos.writeBoolean(writeFont);        // Write the Font data if a font is on this object.        if (writeFont) {            oos.writeObject(font.getName());            oos.writeInt(font.getSize());            oos.writeInt(font.getStyle());        }    }    /**     * Reconstitute from an ObjectInputStream.     */    private void readObject(ObjectInputStream ois)            throws ClassNotFoundException, IOException {        ois.defaultReadObject();        // Get the flag form the stream        boolean hasFont = ois.readBoolean();        if (hasFont) {            String name = (String) ois.readObject();            int size = ois.readInt();            int style = ois.readInt();            font = new Font(name, style, size);        } else {            font = OMText.DEFAULT_FONT;        }    }}

⌨️ 快捷键说明

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