1

次のコードを実行しようとすると、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);
4

1 に答える 1

1

コード内の別の場所にある必要があります。以下の変更されたリスナーを使用して、このから期待される結果が得られます。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));
    }
});
于 2012-08-06T21:13:11.853 に答える