Java 更改jFreeChart的背景色

Java 更改jFreeChart的背景色,java,swing,jfreechart,Java,Swing,Jfreechart,我正在尝试更改jfreechart的背景色。 它显示为灰色,我想要白色背景。 我试过了 chart.setBackgroundPaint(Color.WHITE); 但是它没有显示白色背景。 我有以下代码来显示绘图 chart = ChartFactory.createXYLineChart("Line Chart","Year","Temperature", dataset); ChartPanel chartPanel = new ChartPanel(chart, false); gr

我正在尝试更改jfreechart的背景色。 它显示为灰色,我想要白色背景。 我试过了

chart.setBackgroundPaint(Color.WHITE); 
但是它没有显示白色背景。
我有以下代码来显示绘图

chart = ChartFactory.createXYLineChart("Line Chart","Year","Temperature", dataset);
ChartPanel chartPanel = new ChartPanel(chart, false);
graph1.setLayout(new BorderLayout());
graph1.add(chartPanel, BorderLayout.EAST);
graph1.add(chartPanel);
SwingUtilities.updateComponentTreeUI(this);
graph1.updateUI();
System.out.println("Database created successfully...");

如何设置白色背景?

图表面板继承方法

或者尝试:

chart.getPlot().setBackgroundPaint( Color.BLUE );
见和的文件


请参见左右。

您必须使用
JFreeChart.getPlot().setBackgroundPaint(Color.WHITE)如下所示:

public static void main(String[] args) {
    DefaultPieDataset pieDataset = new DefaultPieDataset(); 
    pieDataset.setValue("LoggedIn" +": "+ 5, 10);
    pieDataset.setValue("LoggedOut" +": "+ 8, 17);
    JFreeChart jfc = ChartFactory.createPieChart("title", pieDataset, false, false, false );
    jfc.getPlot().setBackgroundPaint(Color.WHITE);
    ChartPanel chart = new ChartPanel(jfc);
    JFrame frame = new JFrame();
    frame.add(chart);
    frame.pack();
    frame.setVisible(true);
}   

我希望有帮助

chartPanel两次添加到Graph1中,不调用updateComponentTree或。UpdateUI,这些都是昂贵的电话,与更新外观有关。请编辑您的问题,以包括显示预期结果的版本号、an和a。第一个示例在我这边不起作用,第二个示例起作用。
public static void main(String[] args) {
    DefaultPieDataset pieDataset = new DefaultPieDataset(); 
    pieDataset.setValue("LoggedIn" +": "+ 5, 10);
    pieDataset.setValue("LoggedOut" +": "+ 8, 17);
    JFreeChart jfc = ChartFactory.createPieChart("title", pieDataset, false, false, false );
    jfc.getPlot().setBackgroundPaint(Color.WHITE);
    ChartPanel chart = new ChartPanel(jfc);
    JFrame frame = new JFrame();
    frame.add(chart);
    frame.pack();
    frame.setVisible(true);
}