Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Constructeur ....
- // Ecouteur du timer
- ActionListener listener = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- refreshVueLine(vue.getListe());
- }
- };
- /* Timer s'activant toutes les 1 secondes : Met à jour la courbe */
- Timer timer = new Timer(1000, listener);
- timer.start();
- // ajout des éléments au panel principal
- add(leftPanel, BorderLayout.CENTER);
- setVisible(true);
- }
- /**
- * Mise à jour de la courbe
- *
- * @param con connection
- * @param panel panneau contenant la courbe
- */
- public void refreshVueLine(ListeCapteurs listeCapteurs) {
- TimeSeriesCollection dataset = new TimeSeriesCollection();
- SimpleDateFormat standardDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- ListeCapteurs temp = new ListeCapteurs();
- for (int i = 0; i < 3; i++) {
- Capteur c = listeCapteurs.getCapteur(i);
- temp.addToListe(c);
- }
- for (Capteur cap : temp.getListe()) {
- TimeSeries serie = new TimeSeries("Capteur " + cap.getNumCapteur());
- String query =
- "SELECT date, valeur FROM `data` "
- + "WHERE id = '" + cap.getNumCapteur() + "' "
- + "AND date >= '2019-01-16 13:44:52' "
- + "AND date <= '2019-01-16 15:44:52'";
- try {
- ResultSet rs = stmt.executeQuery(query);
- while (rs.next()) {
- Double val = rs.getDouble("valeur");
- String date = rs.getString("date");
- // nouvelles données
- Date nouvDate = standardDateFormat.parse(date);
- // maj données toutes les secondes
- serie.addOrUpdate(new Second(nouvDate), val);
- }
- dataset.addSeries(serie);
- } catch (SQLException | ParseException e) {
- System.out.println("ERREUR : SELECT refreshVueLine(Connection con, ChartPanel panel)");
- }
- }
- // création du chart
- JFreeChart newChart = ChartFactory.createTimeSeriesChart("", "Temps", "Valeurs", dataset, true, false, false);
- // suppression de l'ancien graphe
- leftPanel.remove(lineChartPanel);
- leftPanel.revalidate(); // refresh
- // attribution du nouveau graphe
- lineChartPanel = new ChartPanel(newChart);
- leftPanel.add(lineChartPanel, BorderLayout.CENTER);
- // update
- leftPanel.repaint();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement