rectanglereportelement.java

来自「优秀的打印控件全源代码,类似水晶表的设计器!」· Java 代码 · 共 147 行

JAVA
147
字号
/* * RectangleReportElement.java * *  iReport  --  Visual designer for generating JasperReports Documents *  Copyright (C) 2002  Giulio Toffoli gt@businesslogic.it * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *  Giulio Toffoli *  Via T.Aspetti, 233 *  35100 Padova ITALY *  gt@businesslogic.it * * Created on 28 febbraio 2003, 19.20 */package it.businesslogic.ireport;import it.businesslogic.ireport.gui.*;import it.businesslogic.ireport.util.*;import java.awt.*;import java.awt.image.*;import java.awt.geom.*;public class RectangleReportElement extends GraphicReportElement {	public int radius = 0;		public RectangleReportElement(int x, int y, int width, int height)	{		super(x,y,width,height);                setGraphicElementPen("Thin");		this.bgcolor = Color.WHITE;		this.fgcolor = Color.BLACK;                setKey("rectangle");	}		public RectangleReportElement(int x, int y, int width, int height, int radius)	{		this(x,y,width,height);		this.radius = radius;                 setKey("rectangle");	}		public void drawObject(Graphics2D g,double zoom_factor, int x_shift_origin, int y_shift_origin)	{                position.x -= 10;		position.y -= 10;		x_shift_origin -= 10;		y_shift_origin -= 10;				this.zoom_factor = zoom_factor;                                g.setColor( bgcolor );                if (!getTransparent().equalsIgnoreCase("Transparent"))                    g.fillRoundRect( getZoomedDim(position.x)-x_shift_origin,				getZoomedDim(position.y)-y_shift_origin,				getZoomedDim(width),				getZoomedDim(height),                                2*this.radius,                                2*this.radius);                g.setColor( this.fgcolor );                              		position.x += 10;		position.y += 10;		x_shift_origin += 10;		y_shift_origin += 10;                                drawGraphicsElement(g,this.getGraphicElementPen(), zoom_factor,  x_shift_origin,y_shift_origin, 2*this.radius);	}		public ReportElement cloneMe()	{		RectangleReportElement newReportElement = new RectangleReportElement(position.x, position.y, width, height);                copyBaseReportElement(newReportElement, this);		return newReportElement;	}		public void  drawGraphicsElement(Graphics2D g, String pen, double zoom_factor, int x_shift_origin, int y_shift_origin)	{				Stroke stroke = getPenStroke( pen,zoom_factor );		g.setColor( this.fgcolor );                		this.zoom_factor = zoom_factor;		if (stroke==null || pen.equalsIgnoreCase("None")) return;				position.x -= 10;		position.y -= 10;		x_shift_origin -= 10;		y_shift_origin -= 10;                                Stroke oldStroke = g.getStroke();                g.setStroke(stroke);		g.drawRoundRect(                    getZoomedDim(position.x)-x_shift_origin,		    getZoomedDim(position.y)-y_shift_origin,                    getZoomedDim(width),getZoomedDim(height),                    2*this.radius,                    2*this.radius);		position.x += 10;		position.y += 10;                                               g.setStroke(oldStroke);        }                /** Getter for property radius.         * @return Value of property radius.         *         */        public int getRadius() {            return radius;        }                /** Setter for property radius.         * @param radius New value of property radius.         *         */        public void setRadius(int radius) {            this.radius = radius;        }                public void copyBaseReportElement(ReportElement destination, ReportElement source)        {                super.copyBaseReportElement(destination, source);                                if (destination instanceof RectangleReportElement &&                    source instanceof RectangleReportElement )                {                    ((RectangleReportElement)destination).setRadius(  ((RectangleReportElement)source).getRadius());                }        }        }

⌨️ 快捷键说明

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