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

📄 renderedchartimage.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/* * Created on 04.12.2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package net.sourceforge.ganttproject.chart;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.DirectColorModel;import java.awt.image.Raster;import java.awt.image.SampleModel;import java.util.List;import net.sourceforge.ganttproject.GanttGraphicArea;import net.sourceforge.ganttproject.GanttGraphicArea.ChartImplementation;public abstract class RenderedChartImage extends SimpleRenderedImage {    private BufferedImage myTaskImage;    ColorModel myColorModel = new DirectColorModel(32,            0x00ff0000, // Red            0x0000ff00, // Green            0x000000ff, // Blue            0x0           // Alpha            );    SampleModel mySampleModel;    //private final List myVisibleTasks;	private int myCurrentTile = -1;	private Raster myCurrentRaster;	private final ChartModelBase myChartModel;	    public RenderedChartImage(ChartModelBase chartModel, BufferedImage taskImage, int chartWidth, int chartHeight) {    	myChartModel = chartModel;        myTaskImage = taskImage;        sampleModel = myColorModel.createCompatibleSampleModel(chartWidth,chartHeight);        colorModel = myColorModel;        minX = 0;        minY = 0;        width = chartWidth+taskImage.getWidth();        height = chartHeight;        tileWidth = width;        tileHeight = 32;    }    public BufferedImage getWholeImage() {		BufferedImage chartImage = getChart(0, 0, getWidth(), getHeight(), getWidth(), getHeight());        BufferedImage result = new BufferedImage(chartImage.getWidth()+myTaskImage.getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);        Graphics g = result.getGraphics();        g.drawImage(myTaskImage,0,0,null);        g.translate(myTaskImage.getWidth(), 0);        g.drawImage(chartImage, 0,0,null);        return result;	}	public Raster getTile(int tileX, int tileY) {		if (myCurrentTile!=tileY) {            int offsety = tileY*getTileHeight();            BufferedImage tile = getChart(myTaskImage.getWidth(), offsety, getTileWidth(),getTileHeight(),  getWidth(), getHeight());            Graphics g = tile.getGraphics();            g.translate(0, -offsety);            g.drawImage(myTaskImage,0,0,null);            myCurrentRaster = tile.getRaster().createTranslatedChild(0, tileY*getTileHeight());            myCurrentTile = tileY;		}		return myCurrentRaster;    }    protected abstract void paintChart(Graphics g);        private BufferedImage getChart(int offsetx, int offsety,  int width, int height, int chartWidth, int chartHeight) {        BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB );        Graphics g2 = result.getGraphics();        g2.setColor(Color.white);        g2.fillRect(0, 0, width,height);        g2.translate(offsetx, -offsety);        g2.clipRect(0,offsety,width,height);        myChartModel.setBounds(new Dimension(chartWidth, chartHeight));        paintChart(g2);        //myChartModel.setTuningOptions(ChartModelImpl.TuningOptions.DEFAULT);        return result;    }    }

⌨️ 快捷键说明

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