Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.text.SimpleDateFormat;
- import javax.swing.JPanel;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartPanel;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.axis.DateAxis;
- import org.jfree.chart.plot.XYPlot;
- import org.jfree.chart.renderer.xy.XYItemRenderer;
- import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
- import org.jfree.data.time.Day;
- import org.jfree.data.time.Millisecond;
- import org.jfree.data.time.Month;
- import org.jfree.data.time.RegularTimePeriod;
- import org.jfree.data.time.TimeSeries;
- import org.jfree.data.time.TimeSeriesCollection;
- import org.jfree.data.xy.XYDataset;
- import org.jfree.ui.ApplicationFrame;
- import org.jfree.ui.RectangleInsets;
- import org.jfree.ui.RefineryUtilities;
- //Part of my sql code
- import java.sql.*;
- import java.text.SimpleDateFormat;
- public class Graph1 extends ApplicationFrame {
- @SuppressWarnings("deprecation")
- static TimeSeries s1 = new TimeSeries("Value", Month.class);
- public Graph1(String title) {
- super(title);
- XYDataset dataset = createDataset();
- JFreeChart chart = createChart(dataset);
- ChartPanel chartPanel = new ChartPanel(chart);
- chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
- chartPanel.setMouseZoomable(true, false);
- setContentPane(chartPanel);
- }
- private static JFreeChart createChart(XYDataset dataset) {
- JFreeChart chart = ChartFactory.createTimeSeriesChart(
- "Sensor Data Values", // title
- "Time", // x-axis label
- "Value", // y-axis label
- dataset, // data
- true, // create legend?
- true, // generate tooltips
- false // generate URLs?
- );
- chart.setBackgroundPaint(Color.white);
- XYPlot plot = (XYPlot) chart.getPlot();
- plot.setBackgroundPaint(Color.lightGray);
- plot.setDomainGridlinePaint(Color.white);
- plot.setRangeGridlinePaint(Color.white);
- plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
- plot.setDomainCrosshairVisible(true);
- plot.setRangeCrosshairVisible(true);
- XYItemRenderer r = plot.getRenderer();
- if (r instanceof XYLineAndShapeRenderer) {
- XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
- renderer.setBaseShapesVisible(true);
- renderer.setBaseShapesFilled(true);
- }
- DateAxis axis = (DateAxis)plot.getDomainAxis();
- axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy HH-mm-ss"));
- return chart;
- }
- private static XYDataset createDataset()
- {
- Connection conn = null;
- Statement stmt = null;
- try
- {
- Class.forName("com.mysql.jdbc.Driver");
- conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/agriculture","root","root");
- stmt = conn.createStatement();
- String sql;
- sql = "select date_time,data_value from sensor_data order by date_time desc limit 10";
- ResultSet rs = stmt.executeQuery(sql);
- while(rs.next())
- {
- Timestamp now = rs.getTimestamp("date_time");
- double value = rs.getInt("data_value");
- //SimpleDateFormat df = new SimpleDateFormat("YYYY.MM.dd HH:mm:ss");
- //String s = df.format(now);
- //System.out.print("Time: " + s);
- //System.out.print(", Value: " + value + "n");
- s1.add(new Millisecond(now), value);
- }
- rs.close();
- stmt.close();
- conn.close();
- }
- catch(SQLException se)
- {
- se.printStackTrace();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- if(stmt!=null)
- stmt.close();
- }
- catch(SQLException se2)
- {
- }
- try
- {
- if(conn!=null)
- conn.close();
- }
- catch(SQLException se)
- {
- se.printStackTrace();
- }//end finally try
- }//end try
- TimeSeriesCollection dataset = new TimeSeriesCollection();
- dataset.addSeries(s1);
- //dataset.setDomainIsPointsInTime(true);
- return dataset;
- }
- public static JPanel createDemoPanel()
- {
- JFreeChart chart = createChart(createDataset());
- return new ChartPanel(chart);
- }
- public static void main(String[] args) {
- Graph1 demo = new Graph1("Time Series Demo 1");
- demo.pack();
- RefineryUtilities.centerFrameOnScreen(demo);
- demo.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement