绘制jFreechart与数组的问题

时间:2016-01-29 17:50:33

标签: java swing jfreechart

我正在学习java,我正在尝试构建一个应用程序。我坚持使用这个应用程序的最后一部分,并希望你们中的一些人能够帮助我。应用程序将值存储在数据库中,并在用户请求时,它将检索数据并在线图上绘制此数据。应用程序正在生成折线图,但我的问题是它为从数据库检索的每个数据生成一个折线图。因此,如果查询返回15个结果,则应用程序将生成15个图形,每个图形一个图表。我希望检索所有数据并将其绘制到一个图表上。以下是我的代码。有人能指出我正确的方向吗?

试             {                 Connection con = new DataConnection()。connect();                 ResultSet rs;

            PreparedStatement retrieve = con.prepareStatement("SELECT row FROM table");

            rs = retrieve.executeQuery();


            while (rs.next())
            {

                String string = rs.getString(1);
                double double = Double.parseDouble(string);

                DefaultCategoryDataset dataset = new DefaultCategoryDataset();
                dataset.addValue(double, "Chart", "Data");

                JFreeChart chart = ChartFactory.createLineChart("Graph",           "Data", "Data", dataset, PlotOrientation.VERTICAL, true, false, false);
                CategoryPlot p = chart.getCategoryPlot();
                p.setRangeGridlinePaint(Color.black);
                ChartFrame frame = new ChartFrame("Line Chart", chart);
                frame.setVisible(true);
                frame.setSize(450, 350);

            }

        }

1 个答案:

答案 0 :(得分:2)

  

因此,如果查询返回15个结果,则应用程序将生成15个图形   每个都有一个情节。我希望检索并绘制所有数据   一张图。

您的代码为数据库查询结果集中的每一行创建一个新的JFreeChart实例,这就是为什么在打开图表时会得到太多帧的原因。您必须只创建一个JFreeChart实例,并将数据作为系列添加到其模型中。

请参阅此相关问答:Multiple graphs in multiple figures using jFreeChart标记下还有很多示例。