我需要用数据库中的值创建一个XYLineChart(Java(Mysql)

时间:2014-03-10 13:00:16

标签: java swing jfreechart

我需要使用数据库中的值创建XYLineChart

我明白这一点:

public class Test {

  public static void main(String[] args) {

    XYSeries                series1   = new XYSeries("Lions");
                            series1.add(20, 10);
                            series1.add(40, 20);
                            series1.add(70, 50);

    XYSeries                series2   = new XYSeries("Rabbits");
                            series2.add(20, 30);
                            series2.add(40, 40);
                            series2.add(70, 10);

    XYSeriesCollection      xyDataset = new XYSeriesCollection();
                            xyDataset.addSeries(series1);
                            xyDataset.addSeries(series2);

    JFreeChart              chart     = ChartFactory.createXYLineChart("Weight","kg","Numbers",xyDataset,PlotOrientation.VERTICAL,true,false,false);
                            chart.setBackgroundPaint(Color.yellow); 

    XYPlot                  plot      = (XYPlot) chart.getPlot();
                            plot.setBackgroundPaint       (Color.white);
                            plot.setDomainGridlinePaint   (Color.GREEN);
                            plot.setRangeGridlinePaint    (Color.orange);
                            plot.setAxisOffset            (new RectangleInsets(50, 0, 20, 5));
                            plot.setDomainCrosshairVisible(true);
                            plot.setRangeCrosshairVisible (true);

    XYLineAndShapeRenderer  renderer  = (XYLineAndShapeRenderer) plot.getRenderer();      
                            renderer.setBaseShapesVisible(true);
                            renderer.setBaseShapesFilled (true);

    ChartFrame              frame     = new ChartFrame("ChartFrame", chart);
                            frame.setSize   (450, 250);
                            frame.setVisible(true);                   
  }  

}

但不知道如何从数据库中获取数据并在图表上显示它们。

使用单线图我可以连接到数据库,但有些人不知道。

任何人都可以帮助我吗?我真的需要帮助。

1 个答案:

答案 0 :(得分:2)

您可能需要查看此主题:Multiple graphs in multiple figures using jFreeChart。在答案中描述了如何使用JFreeChartSwingWorker在后​​台线程中进行耗时的任务(如数据库调用)并更新{{3中的Swing组件(在本例中为图表)其中应该进行Swing组件的创建和更新。

说完之后,您应该通过doInBackground()方法在publish()方法中通过process()方法进行数据库调用,并在{{1}}方法中将其添加到图表中。

关于数据库调用,您应该查看Event Dispatch Thread。这里有官方路径:

根据您使用的数据库引擎,还有一些很好的教程,只需google“jdbc + used DBMS”(例如:jdbc + mysql,jdbc + postgresql,jdbc + sqlite等)。这是一个非常好的: