1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
package multiple;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//import java.text.DecimalFormat;
public class LineChartTests extends ApplicationFrame {
public LineChartTests(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
// add the chart to a panel...
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
}
private String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/pfe.mdb";
private String user = "user";
private String pass = "pass";
private String []temps = new String [100];
private float[] Traf= new float [100];
private float[] SRVLINES= new float [100];
private float[] CULC= new float [100];
private int y=0;
private CategoryDataset createDataset() {
// row keys...
String series1 = "TGRP:TRAFCARR";
String series2 = "TGRP:SRVLINES";
String series3 = "TGRP:CULC";
// --connection à la base donnée
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
}
catch(ClassNotFoundException e) {
System.err.println("Erreur de chargement du driver : + e") ;
}
try {
Connection connect = DriverManager.getConnection(url,user,pass) ;
Statement statement = connect.createStatement() ;
String Str="2007/05/20";
String Str02="MSC09:TBTN16";
String query = "select \"TGRP:TRAFCARR\",\"TGRP:SRVLINES\",\"TGRP:CULC\",Time from TGRPDetailed where (Date=\'"+Str+"\' and Object=\'"+Str02+"\') ";
//String query = "select \"TGRP:TRAFCARR\",Time from TGRPDetailed where (Date=\'"+Str+"\' and Object=\'"+Str02+"\') ";
ResultSet resultset = statement.executeQuery(query);
while (resultset.next()!= false){
String Str1 = resultset.getString(1);
String Str2 = resultset.getString(2);
String Str3 = resultset.getString(3);
String Str4 = resultset.getString(4);
Traf[y]= Float.parseFloat(Str1);
SRVLINES[y]= Float.parseFloat(Str2);
CULC[y]= Float.parseFloat(Str3);
temps[y]=Str4;
y++;
}
System.out.println(y);
connect.close();// fermuture de la connection à la BD
}
catch(SQLException sqle) {
System.err.println("Erreur lors de la connexion : " + sqle) ;
}
//column keys...
//String type1 = "Type 1";
//String type2 = "Type 2";
//String type3 = "Type 3";
//String type4 = "Type 4";
//String type5 = "Type 5";
//String type6 = "Type 6";
//String type7 = "Type 7";
//String type8 = "Type 8";
// create the dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (int i=0;i<y;i++){
dataset.addValue(Traf[i], series1, temps[i]);
dataset.addValue(SRVLINES[i], series2, temps[i]);
dataset.addValue(CULC[i], series3, temps[i]);
}
//dataset.addValue(5.0, series2, type1);
/*
dataset.addValue(7.0, series2, type2);
dataset.addValue(6.0, series2, type3);
dataset.addValue(8.0, series2, type4);
dataset.addValue(4.0, series2, type5);
dataset.addValue(4.0, series2, type6);
dataset.addValue(2.0, series2, type7);
dataset.addValue(1.0, series2, type8);
dataset.addValue(4.0, series3, type1);
dataset.addValue(3.0, series3, type2);
dataset.addValue(2.0, series3, type3);
dataset.addValue(3.0, series3, type4);
dataset.addValue(6.0, series3, type5);
dataset.addValue(3.0, series3, type6);
dataset.addValue(4.0, series3, type7);
dataset.addValue(3.0, series3, type8);
*/
return dataset;
}
private JFreeChart createChart(CategoryDataset dataset) {
// create the chart...
JFreeChart chart = ChartFactory.createLineChart(
"Line Chart Demo 1", // chart title
"Type", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
/*
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
StandardLegend legend = (StandardLegend) chart.getLegend();
legend.setDisplaySeriesShapes(true);
legend.setDisplaySeriesLines(true);
chart.setBackgroundPaint(new Color(0xCC, 0xCC, 0xFF));
CategoryPlot plot = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
//customise the renderer...
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
renderer.setDrawOutlines(true);
renderer.setSeriesStroke(0, new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,
1.0f,new float[] {10.0f, 6.0f},0.0f));
renderer.setSeriesStroke(1, new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,
1.0f,new float[] {6.0f, 6.0f},0.0f));
renderer.setSeriesStroke(2, new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,
1.0f,new float[] {2.0f, 6.0f},0.0f));
renderer.setItemLabelsVisible(true);
renderer.setPositiveItemLabelPosition(new ItemLabelPosition());
renderer.setNegativeItemLabelPosition(new ItemLabelPosition());
// OPTIONAL CUSTOMISATION COMPLETED.
*
*/
return chart;
}
public static void main(String[] args) {
LineChartTests demo = new LineChartTests("Line Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
} |
Partager