我正在学习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);
}
}
答案 0 :(得分:2)
因此,如果查询返回15个结果,则应用程序将生成15个图形 每个都有一个情节。我希望检索并绘制所有数据 一张图。
您的代码为数据库查询结果集中的每一行创建一个新的JFreeChart
实例,这就是为什么在打开图表时会得到太多帧的原因。您必须只创建一个JFreeChart
实例,并将数据作为系列添加到其模型中。
请参阅此相关问答:Multiple graphs in multiple figures using jFreeChart。 jfreechart标记下还有很多示例。