企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 9.3 图区属性 ### 9.3.1 概述 JFreeChart类在绘制图表时,将大部分工作交给了Plot类(图形绘制结构)或Plot的子类。JFreeChart类的getPlot()方法返回了一个图表创建的图区(plot)的引用。 ``` Plot plot = jfreechart.getPlot(); ``` 我们需要将该引用转化成Plot的一个具体子类。例如: ``` CategoryPlot plot = jfreechart.getCategoryPlot(); ``` 或 ``` XYPlot plot = jfreechart.getXYPlot(); ``` 注意:如果plot不是相应的类,则在转化的时候,会抛出ClassCastException类型转制异常。 ### 9.3.2 图区子类 那么我们如何知道我们图表使用的Plot是那个子类呢?作为使用JFreeChart的经验,分清那些图表使用CategoryPlot和那些图表使用XYPlot是非常清晰的。如果还怀疑,看一下ChartFactory类的源代码就会明白每个类型的图表是如何放在一起的。 ### 9.3.3 设置图区背景颜色 我们可以使用方法setBackgroundPaint()设置图区的背景颜色。例如: ``` Plot plot = jfreechart.getPlot(); plot.setBackgroundPaint(Color.white); ``` 我们可使用Paint接口的任何实现作为背景颜色的设置参数,其中有Color、GradientPaint(渐变颜色)和TexturePaint等。同时,我们也可以设置背景颜色为null。 ### 9.3.4 设置背景图片 我们可以使用方法setBackgroundImage()为图区设置备有图片。 ``` Plot plot = jfreechart.getPlot(); plot.setBackgroundImage(JFreeChart.INFO.getLogo()); ``` 默认的,图片充满图表的整个背景,图片失真。但我们可以改变图片不充满整个背景,使用方法是setBackgroundImageAlignment()。 ``` plot.setBackgroundImageAlignment(Align.BOTTOM_RIGHT); ``` 使用setBackgroundImageAlpha()方法,我们可以控制图片的透明度。如果我们希望图片充满这个图表区域,那么我们需要将背景图片添加到JFreeChart对象上(前面已经介绍过)。