我的XChartPanel构造函数(Java Swing)出了什么问题?

时间:2016-04-10 02:54:22

标签: java swing

错误显示为,

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at org.knowm.xchart.internal.chartpart.Legend_AxesChart.paint(Legend_AxesChart.java:195)
    at org.knowm.xchart.XYChart.paint(XYChart.java:254)
    at org.knowm.xchart.XYChart.paint(XYChart.java:225)
    at org.knowm.xchart.XChartPanel.paintComponent(XChartPanel.java:95)
    at javax.swing.JComponent.paint(JComponent.java:1056)
    at javax.swing.JComponent.paintChildren(JComponent.java:889)
    at javax.swing.JComponent.paint(JComponent.java:1065)
    at javax.swing.JComponent.paintChildren(JComponent.java:889)
    at javax.swing.JComponent.paint(JComponent.java:1065)
    at javax.swing.JComponent.paintChildren(JComponent.java:889)
    at javax.swing.JComponent.paint(JComponent.java:1065)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1572)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1495)

这是我的代码,其中xyChart被声明为字段。我确信它是XChartPanel的构造函数部分出错了,但我根本不知道从哪里开始。

/**
     * Initialize the XYChart
     */
    private void initXYChart() {
        // Create Chart
        xyChart = new XYChartBuilder().width(800).height(800).title(getClass().getSimpleName())
                .xAxisTitle(xColName)
                .yAxisTitle("Y").build();

        // Customize Chart
        xyChart.getStyler().setLegendPosition(LegendPosition.InsideNE);
        xyChart.getStyler().setAxisTitlesVisible(true);
        xyChart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Line);

        double[] yCoordArray = new double[xCoordArray.length];
        // Loop through the series
        if (!seriesList.isEmpty()) {
            for (int i = 0; i < yCoordinates.size(); i++) {
                List<Double> yCoordOneSeries = yCoordinates.get(i);
                // Convert list to array
                for (int j = 0; j < yCoordArray.length; j++) {
                    yCoordArray[j] = yCoordOneSeries.get(j);
                }
                xyChart.addSeries(yColNames.get(i), xCoordArray, yCoordArray);
            }
        }

        xyChartPanel = new XChartPanel<>(xyChart);

        add(xyChartPanel, BorderLayout.CENTER);
    }

0 个答案:

没有答案