我需要使用数据库中的值创建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);
}
}
但不知道如何从数据库中获取数据并在图表上显示它们。
使用单线图我可以连接到数据库,但有些人不知道。
任何人都可以帮助我吗?我真的需要帮助。
答案 0 :(得分:2)
您可能需要查看此主题:Multiple graphs in multiple figures using jFreeChart。在答案中描述了如何使用JFreeChart
和SwingWorker
在后台线程中进行耗时的任务(如数据库调用)并更新{{3中的Swing组件(在本例中为图表)其中应该进行Swing组件的创建和更新。
说完之后,您应该通过doInBackground()
方法在publish()
方法中通过process()
方法进行数据库调用,并在{{1}}方法中将其添加到图表中。
关于数据库调用,您应该查看Event Dispatch Thread。这里有官方路径:
根据您使用的数据库引擎,还有一些很好的教程,只需google“jdbc + used DBMS”(例如:jdbc + mysql,jdbc + postgresql,jdbc + sqlite等)。这是一个非常好的: