如何创建一个在两种颜色之间交替的虚线?

时间:2011-08-05 08:29:09

标签: java awt jfreechart

我正在使用JFreeChart,并希望使用在灰色和黑色短划线之间交替的线条绘制一系列数据,两者之间没有空格。即grayblackgrayblackgrayblack

JFreeChart只接受AWT Stroke或Shape对象作为渲染系列的方法。

据我了解,BasicStroke只能有一种颜色,并且在不透明和透明之间交替。是否有另一个实现Stroke的类允许多种颜色?或者还有另一种方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

我冒着被冒灭的风险,因为我是一名没有特定AWT或JFreeChart经验的Android程序员,但我会有所作为。

您是否可以通过叠加两条虚线来创建在两种颜色之间交替的虚线,并偏移其中一条的虚线相位以使破折号啮合在一起?我只是看了AWT的BasicStroke类,我看到这一点以及指定一个破折号数组,你也可以指定破折号'阶段'。

这是一个可能有用的网址,显示相位设置如何影响虚线笔划(靠近页面底部):http://docstore.mik.ua/orelly/java-ent/jfc/ch04_05.htm

答案 1 :(得分:1)

我和JFreeChart有类似的问题。我最终只是扩展了适当的绘图并覆盖了一些绘制方法。这不是一个理想的解决方案,但对JFreeChart的处理方式有一个限制。

答案 2 :(得分:1)

您可以与LinearGradientPaint一起尝试循环BasicStroke

附录:要渲染锐边,请考虑java.awt.TexturePaint。要渲染正交键合,请考虑java.awt.geom.Path2D