将图像/图案应用于饼图部分而不是正常颜色

时间:2014-10-28 14:11:45

标签: java jfreechart

不是使用普通的plot.setSectionPaint()方法来填充饼图部分的颜色,而是可以添加图案或图像,如下所示。

我有这个要求,因为当用黑色和黑色印刷时难以区分颜色。白色打印机。

最坏的情况如果不可能那么我将不得不使用2种非常不同的颜色,这些颜色很容易通过黑白打印机区分

pie chart

1 个答案:

答案 0 :(得分:0)

setSectionPaint允许传递接口java.awt.Paint的任何实现。 Color是一个实现Paint的类,但还有其他类,例如TexturePaint

此代码将在您的示例中创建一个类似蓝线图案的TexturePaint

BufferedImage texture = new BufferedImage(1, 30, BufferedImage.TYPE_INT_RGB);
Graphics2D g = texture.createGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, 1, 30);
g.setColor(new Color(0x26A2D6));
g.fillRect(0, 0, 1, 20);
g.dispose();

TexturePaint texturePaint = new TexturePaint(texture,
    texture.getRaster().getBounds());

然后,您可以将texturePaint作为参数传递给setSectionPaint