package org.axismanipulation;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.awt.Font;
import java.math.BigDecimal;
import java.text.NumberFormat;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.dial.*;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.StandardGradientPaintTransformer;
import org.jfree.ui.TextAnchor;
public class TachoPlotEinfach {
static DefaultValueDataset dataset1 = new DefaultValueDataset(10D);
static public BufferedImage getTachoMeterEinfach( int erster, String labelo, String labelu ){
NumberFormat nb = NumberFormat.getIntegerInstance();
String labelEinheit = labelu;
BufferedImage image = new BufferedImage( 250 , 250 ,BufferedImage.TYPE_4BYTE_ABGR);
dataset1.setValue( new Integer(erster));
DialPlot dialplot = new DialPlot();
dialplot.setView( 0 .0D, 0 .0D, 1 .0D, 1 .0D);
dialplot.setDataset( 0 , dataset1);
StandardDialFrame standarddialframe = new StandardDialFrame();
standarddialframe.setBackgroundPaint(Color.lightGray);
standarddialframe.setForegroundPaint(Color.darkGray);
dialplot.setDialFrame(standarddialframe);
GradientPaint gradientpaint = new GradientPaint( new Point(), new Color( 255 , 255 , 255 ), new Point(), new Color( 170 , 170 , 220 ));
DialBackground dialbackground = new DialBackground(gradientpaint);
dialbackground.setGradientPaintTransformer( new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
dialplot.setBackground(dialbackground);
DialTextAnnotation dialtextannotation = new DialTextAnnotation(labelEinheit);
dialtextannotation.setFont( new Font( "Dialog" , 1 , 8 ));
dialtextannotation.setRadius( 0 .73D);
dialtextannotation.setAnchor(TextAnchor.TOP_CENTER);
DialTextAnnotation dialtextannotation1 = new DialTextAnnotation(labelo);
dialtextannotation1.setFont( new Font( "Dialog" , 1 , 8 ));
dialtextannotation1.setRadius( 0 .65D);
dialtextannotation1.setAnchor(TextAnchor.TOP_CENTER);
dialplot.addLayer(dialtextannotation);
dialplot.addLayer(dialtextannotation1);
DialValueIndicator dialvalueindicator = new DialValueIndicator( 0 );
dialvalueindicator.setInsets( new RectangleInsets( 6 , 8 , 6 , 8 ));
dialvalueindicator.setFont( new Font( "Calibri" ,Font.TRUETYPE_FONT, 8 ));
dialvalueindicator.setOutlinePaint(Color.BLUE);
dialvalueindicator.setRadius( 0 .39999999999999998D);
dialvalueindicator.setAngle(-90D);
dialvalueindicator.setNumberFormat(nb);
dialplot.addLayer(dialvalueindicator);
StandardDialScale standarddialscale = new StandardDialScale( 0 .0D, 100D, -120D, -300D, 10D, 4 );
standarddialscale.setTickRadius( 0 .88D);
standarddialscale.setTickLabelOffset( 0 .14999999999999999D);
standarddialscale.setTickLabelFont( new Font( "Calibri" , 0 , 14 ));
standarddialscale.setTickLabelFormatter(nb);
dialplot.addScale( 0 , standarddialscale);
StandardDialRange standarddialrange = new StandardDialRange(80D, 100D, Color.blue);
standarddialrange.setScaleIndex( 0 );
standarddialrange.setInnerRadius( 0 .58999999999999997D);
standarddialrange.setOuterRadius( 0 .58999999999999997D);
dialplot.addLayer(standarddialrange);
org.jfree.chart.plot.dial.DialPointer.Pin pin = new org.jfree.chart.plot.dial.DialPointer.Pin( 1 );
pin.setRadius( 0 .55000000000000004D);
dialplot.addPointer(pin);
org.jfree.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.chart.plot.dial.DialPointer.Pointer( 0 );
dialplot.addPointer(pointer);
DialCap dialcap = new DialCap();
dialcap.setRadius( 0 .10000000000000001D);
dialplot.setCap(dialcap);
JFreeChart jfreechart = new JFreeChart(dialplot);
Graphics2D g2 = image.createGraphics();
jfreechart.draw(g2, new Rectangle2D.Double( 0.0 , 0.0 , 250 , 250 ));
g2.dispose();
return image;
}
}
|