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

📄 texttitle.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        if (paint == null) {            throw new IllegalArgumentException(                "TextTitle.setPaint(...): null paint not permitted."            );        }        // make the change...        if (!this.paint.equals(paint)) {            this.paint = paint;            notifyListeners(new TitleChangeEvent(this));        }    }    /**     * Returns the background paint.     *     * @return the paint (possibly <code>null</code>).     */    public Paint getBackgroundPaint() {        return this.backgroundPaint;    }    /**     * Sets the background paint and sends a {@link TitleChangeEvent} to all registered listeners.     * If you set this attribute to <code>null</code>, no background is painted (which makes the      * title background transparent).     *     * @param paint  the background paint (<code>null</code> permitted).     */    public void setBackgroundPaint(Paint paint) {        this.backgroundPaint = paint;        notifyListeners(new TitleChangeEvent(this));    }    /**     * Returns the preferred width of the title.  This will only be called when the title     * is being drawn at the left or right of a chart.     *     * @param g2  the graphics device.     * @param height  the height.     *     * @return the preferred width of the title.     */    public float getPreferredWidth(Graphics2D g2, float height) {        float result = 0.0f;        if (this.text != null && !this.text.equals("")) {            g2.setFont(this.font);            TextBlock title = TextUtilities.createTextBlock(                this.text, this.font, this.paint, height, new G2TextMeasurer(g2)            );            Size2D d = title.calculateDimensions(g2);            result = (float) getSpacer().getAdjustedWidth(d.getHeight());                                                     // use height here because the title                                                     // is displayed rotated        }        if (logger.isDebugEnabled()) {            logger.debug("Title preferred width = " + result);           }        return result;    }    /**     * Returns the preferred height of the title.     *     * @param g2  the graphics device.     * @param width  the width.     *     * @return the preferred height of the title.     */    public float getPreferredHeight(Graphics2D g2, float width) {        float result = 0.0f;        if (this.text != null && !this.text.equals("")) {            g2.setFont(this.font);            float textWidth = (float) getSpacer().trimWidth(width);            TextBlock title = TextUtilities.createTextBlock(                this.text, this.font, this.paint, textWidth, new G2TextMeasurer(g2)            );            Size2D d = title.calculateDimensions(g2);            result = (float) getSpacer().getAdjustedHeight(d.getHeight());        }        if (logger.isDebugEnabled()) {            logger.debug("Title preferred height = " + result);           }        return result;    }    /**     * Draws the title on a Java 2D graphics device (such as the screen or a printer).     *     * @param g2  the graphics device.     * @param area  the area allocated for the title.     */    public void draw(Graphics2D g2, Rectangle2D area) {        if (logger.isDebugEnabled()) {            logger.debug("Drawing title to area " + area.toString());        }        if (this.text.equals("")) {            return;        }        if (this.backgroundPaint != null) {            g2.setPaint(this.backgroundPaint);            g2.fill(area);        }        RectangleEdge position = getPosition();        if (position == RectangleEdge.TOP || position == RectangleEdge.BOTTOM) {            drawHorizontal(g2, area);        }        else if (position == RectangleEdge.LEFT || position == RectangleEdge.RIGHT) {            drawVertical(g2, area);        }    }        /**     * Draws a the title horizontally within the specified area.  This method will be called     * from the {@link #draw(Graphics2D, Rectangle2D) draw} method.     *      * @param g2  the graphics device.     * @param area  the area for the title.     */    protected void drawHorizontal(Graphics2D g2, Rectangle2D area) {        Rectangle2D titleArea = (Rectangle2D) area.clone();        getSpacer().trim(titleArea);        g2.setFont(this.font);        g2.setPaint(this.paint);        TextBlock title = TextUtilities.createTextBlock(            this.text, this.font, this.paint, (float) titleArea.getWidth(), new G2TextMeasurer(g2)        );        TextBlockAnchor anchor = null;        float x = 0.0f;        HorizontalAlignment horizontalAlignment = getHorizontalAlignment();        if (horizontalAlignment == HorizontalAlignment.LEFT) {            x = (float) titleArea.getX();            anchor = TextBlockAnchor.TOP_LEFT;        }        else if (horizontalAlignment == HorizontalAlignment.RIGHT) {            x = (float) titleArea.getMaxX();            anchor = TextBlockAnchor.TOP_RIGHT;        }        else if (horizontalAlignment == HorizontalAlignment.CENTER) {            x = (float) titleArea.getCenterX();            anchor = TextBlockAnchor.TOP_CENTER;        }        float y = 0.0f;        RectangleEdge position = getPosition();        if (position == RectangleEdge.TOP) {            y = (float) titleArea.getY();        }        else if (position == RectangleEdge.BOTTOM) {            y = (float) titleArea.getMaxY();            if (horizontalAlignment == HorizontalAlignment.LEFT) {                anchor = TextBlockAnchor.BOTTOM_LEFT;            }            else if (horizontalAlignment == HorizontalAlignment.CENTER) {                anchor = TextBlockAnchor.BOTTOM_CENTER;            }            else if (horizontalAlignment == HorizontalAlignment.RIGHT) {                anchor = TextBlockAnchor.BOTTOM_RIGHT;            }        }        title.draw(g2, x, y, anchor);    }        /**     * Draws a the title vertically within the specified area.  This method will be called     * from the {@link #draw(Graphics2D, Rectangle2D) draw} method.     *      * @param g2  the graphics device.     * @param area  the area for the title.     */    protected void drawVertical(Graphics2D g2, Rectangle2D area) {        Rectangle2D titleArea = (Rectangle2D) area.clone();        getSpacer().trim(titleArea);        g2.setFont(this.font);        g2.setPaint(this.paint);        TextBlock title = TextUtilities.createTextBlock(            this.text, this.font, this.paint, (float) titleArea.getHeight(), new G2TextMeasurer(g2)        );        TextBlockAnchor anchor = null;        float y = 0.0f;        VerticalAlignment verticalAlignment = getVerticalAlignment();        if (verticalAlignment == VerticalAlignment.TOP) {            y = (float) titleArea.getY();            anchor = TextBlockAnchor.TOP_RIGHT;        }        else if (verticalAlignment == VerticalAlignment.BOTTOM) {            y = (float) titleArea.getMaxY();            anchor = TextBlockAnchor.TOP_LEFT;        }        else if (verticalAlignment == VerticalAlignment.CENTER) {            y = (float) titleArea.getCenterY();            anchor = TextBlockAnchor.TOP_CENTER;        }        float x = 0.0f;        RectangleEdge position = getPosition();        if (position == RectangleEdge.LEFT) {            x = (float) titleArea.getX();        }        else if (position == RectangleEdge.RIGHT) {            x = (float) titleArea.getMaxX();            if (verticalAlignment == VerticalAlignment.TOP) {                anchor = TextBlockAnchor.BOTTOM_RIGHT;            }            else if (verticalAlignment == VerticalAlignment.CENTER) {                anchor = TextBlockAnchor.BOTTOM_CENTER;            }            else if (verticalAlignment == VerticalAlignment.BOTTOM) {                anchor = TextBlockAnchor.BOTTOM_LEFT;            }        }        title.draw(g2, x, y, anchor, x, y, -Math.PI / 2.0);    }    /**     * Tests this title for equality with another object.     *     * @param obj  the object.     *     * @return <code>true</code> or <code>false</code>.     */    public boolean equals(Object obj) {        if (obj == null) {            return false;        }        if (obj == this) {            return true;        }        if (obj instanceof TextTitle) {            TextTitle t = (TextTitle) obj;            if (super.equals(obj)) {                if (!ObjectUtils.equal(this.text, t.text)) {                    return false;                }                if (!ObjectUtils.equal(this.font, t.font)) {                    return false;                }                if (!ObjectUtils.equal(this.paint, t.paint)) {                    return false;                }                if (!ObjectUtils.equal(this.backgroundPaint, t.backgroundPaint)) {                    return false;                }                return true;            }        }        return false;    }    /**     * Returns a hash code.     *      * @return a hash code.     */    public int hashCode() {        int result = super.hashCode();        result = 29 * result + (this.text != null ? this.text.hashCode() : 0);        result = 29 * result + (this.font != null ? this.font.hashCode() : 0);        result = 29 * result + (this.paint != null ? this.paint.hashCode() : 0);        result = 29 * result + (this.backgroundPaint != null ? this.backgroundPaint.hashCode() : 0);        return result;    }    /**     * Returns a clone of this object.     *      * @return a clone of this object.     *      * @throws CloneNotSupportedException never.     */    public Object clone() throws CloneNotSupportedException {        return super.clone();    }        /**     * Provides serialization support.     *     * @param stream  the output stream.     *     * @throws IOException  if there is an I/O error.     */    private void writeObject(ObjectOutputStream stream) throws IOException {        stream.defaultWriteObject();        SerialUtilities.writePaint(this.paint, stream);        SerialUtilities.writePaint(this.backgroundPaint, stream);    }    /**     * Provides serialization support.     *     * @param stream  the input stream.     *     * @throws IOException  if there is an I/O error.     * @throws ClassNotFoundException  if there is a classpath problem.     */    private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException {        stream.defaultReadObject();        this.paint = SerialUtilities.readPaint(stream);        this.backgroundPaint = SerialUtilities.readPaint(stream);    }}

⌨️ 快捷键说明

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