int y = 0;
int lineHeight = (int) ((value / max) * chartHeight);
// paint the background
if (bgPaint == null) {
bgPaint = new GradientPaint(0, 0, bgGradientEndColor,
0, chartHeight, bgGradientStartColor);
}
g2.setPaint(bgPaint);
g2.fillRect(0, 0, currentWidth, currentHeight);
// draw the text label
x += leftIndent;
y += topIndent + labelHeight / 2;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2.setColor(Color.WHITE);
g2.setFont(font);
g2.drawString(label, x, y);
// draw the value
y += topIndent + labelHeight;
g2.drawString(floatFormat.format(value), x, y);
Graphics2D cg2 = (Graphics2D) chartImage.getGraphics();
if (lineX > chartWidth) {
Graphics2D sg2 = (Graphics2D) copyImage.getGraphics();
sg2.drawImage(chartImage, null, -1, 0);
cg2.setPaint(bgPaint);
cg2.fillRect(0, 0, chartWidth, chartHeight);
cg2.drawImage(copyImage, null, 0, 0);
sg2.dispose();
lineX = chartWidth - 1;
}
// draw the current value as a line
if (paint == null) {
paint = new GradientPaint(0, 0, gradientEndColor,
0, chartHeight, gradientStartColor);
}
cg2.setPaint(paint);
cg2.fillRect(lineX, chartHeight - lineHeight, 1, lineHeight);
lineX++;