Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. Constructeur ....
  2. // Ecouteur du timer
  3. ActionListener listener = new ActionListener() {
  4. @Override
  5. public void actionPerformed(ActionEvent e) {
  6. refreshVueLine(vue.getListe());
  7. }
  8. };
  9.  
  10. /* Timer s'activant toutes les 1 secondes : Met à jour la courbe */
  11. Timer timer = new Timer(1000, listener);
  12. timer.start();
  13.  
  14.  
  15.  
  16.  
  17. // ajout des éléments au panel principal
  18. add(leftPanel, BorderLayout.CENTER);
  19. setVisible(true);
  20. }
  21.  
  22.  
  23. /**
  24. * Mise à jour de la courbe
  25. *
  26. * @param con connection
  27. * @param panel panneau contenant la courbe
  28. */
  29. public void refreshVueLine(ListeCapteurs listeCapteurs) {
  30.  
  31. TimeSeriesCollection dataset = new TimeSeriesCollection();
  32. SimpleDateFormat standardDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  33.  
  34. ListeCapteurs temp = new ListeCapteurs();
  35. for (int i = 0; i < 3; i++) {
  36. Capteur c = listeCapteurs.getCapteur(i);
  37. temp.addToListe(c);
  38. }
  39.  
  40. for (Capteur cap : temp.getListe()) {
  41. TimeSeries serie = new TimeSeries("Capteur " + cap.getNumCapteur());
  42.  
  43. String query =
  44. "SELECT date, valeur FROM `data` "
  45. + "WHERE id = '" + cap.getNumCapteur() + "' "
  46. + "AND date >= '2019-01-16 13:44:52' "
  47. + "AND date <= '2019-01-16 15:44:52'";
  48.  
  49. try {
  50. ResultSet rs = stmt.executeQuery(query);
  51. while (rs.next()) {
  52. Double val = rs.getDouble("valeur");
  53. String date = rs.getString("date");
  54.  
  55. // nouvelles données
  56. Date nouvDate = standardDateFormat.parse(date);
  57.  
  58. // maj données toutes les secondes
  59. serie.addOrUpdate(new Second(nouvDate), val);
  60. }
  61.  
  62. dataset.addSeries(serie);
  63.  
  64. } catch (SQLException | ParseException e) {
  65. System.out.println("ERREUR : SELECT refreshVueLine(Connection con, ChartPanel panel)");
  66. }
  67.  
  68. }
  69.  
  70.  
  71. // création du chart
  72. JFreeChart newChart = ChartFactory.createTimeSeriesChart("", "Temps", "Valeurs", dataset, true, false, false);
  73.  
  74. // suppression de l'ancien graphe
  75. leftPanel.remove(lineChartPanel);
  76. leftPanel.revalidate(); // refresh
  77.  
  78. // attribution du nouveau graphe
  79. lineChartPanel = new ChartPanel(newChart);
  80.  
  81.  
  82. leftPanel.add(lineChartPanel, BorderLayout.CENTER);
  83.  
  84. // update
  85. leftPanel.repaint();
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement