我尝试运行以下代码,它在 getSeriesVisible 上引发异常:
chart.addChangeListener(new ChartChangeListener() {
int indexChanged = -1;
@Override
public void chartChanged(ChartChangeEvent event) {
XYPlot ff = chart.getXYPlot();
XYItemRenderer y = ff.getRenderer();
boolean b = y.getSeriesVisible(0);
// chart.getXYPlot().getRenderer().setSeriesVisible(0, b);
}
});
消息:线程“AWT-EventQueue-0”java.lang.NullPointerException 中出现异常
有什么想法吗?
更新:我添加了几个系列并生成图表,如下所示:
XYSeriesCollection data = new XYSeriesCollection();
XYSeries series = new XYSeries("Series 1", true);
series.add(1, 2);
series.add(3, 5);
series.add(8, 10);
series.add(11, 3);
series.add(8, 10);
data.addSeries(series);
series = new XYSeries("Series 2");
series.add(5, -2);
series.add(7, 6);
series.add(8, 12);
series.add(11, -2);
series.add(15, 10);
data.addSeries(series);
final JFreeChart chart = ChartFactory.createXYLineChart("Chart", "X", "Y", data, PlotOrientation.VERTICAL, true, true, false);
最佳答案
它必须在代码中的其他位置。我从中看到了预期的结果 example使用下面修改后的 addButton()
监听器。
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n = dataset.getSeriesCount();
dataset.addSeries("Series" + n, createSeries(n));
XYPlot plot = chart.getXYPlot();
XYItemRenderer renderer = plot.getRenderer();
System.out.println(renderer.isSeriesVisible(n));
}
});
关于java - JFreeChart 在 getSeriesVisible 上引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11828047/