在JFreeChart中改变温度计中的水银颜色

我用JFreeChart创建了温度计图表,但我想改变温度计中的水银颜色。 我怎样才能做到这一点? 到目前为止,这是我的代码; 请解释在哪里更改此代码:

final DefaultValueDataset dataset = new DefaultValueDataset(new Double(10)); // create the chart... final ThermometerPlot plot = new ThermometerPlot(dataset); final JFreeChart chart = new JFreeChart("Thermometer Demo 2", // chart title JFreeChart.DEFAULT_TITLE_FONT, plot, // plot false); // include legend chart.setBackgroundPaint(new Color(241,250,224)); plot.setMercuryPaint(); final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setUpperBound(50); 

您可能正在寻找setSubrangePaint() ,如下所示。

ThermometerDemo

 import java.awt.Color; import java.awt.EventQueue; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.ThermometerPlot; import org.jfree.data.general.DefaultValueDataset; /** @see http://stackoverflow.com/questions/7597015 */ public class ThermometerDemo extends JPanel { private static final int W = 200; private static final int H = 2 * W; public ThermometerDemo(double value) { this.setLayout(new GridLayout()); DefaultValueDataset dataset = new DefaultValueDataset(value); ThermometerPlot plot = new ThermometerPlot(dataset); plot.setSubrangePaint(0, Color.green.darker()); plot.setSubrangePaint(1, Color.orange); plot.setSubrangePaint(2, Color.red.darker()); JFreeChart chart = new JFreeChart("Demo", JFreeChart.DEFAULT_TITLE_FONT, plot, true); this.add(new ChartPanel(chart, W, H, W, H, W, H, false, true, true, true, true, true)); } public static void main(final String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame f = new JFrame("Demo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setLayout(new GridLayout(1, 0)); f.add(new ThermometerDemo(40)); f.add(new ThermometerDemo(60)); f.add(new ThermometerDemo(80)); f.pack(); f.setVisible(true); } }); } }