Advertisement
martaczaska

Wykresy

Nov 22nd, 2020 (edited)
941
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.22 KB | None | 0 0
  1. package eti.radio.pr_inz;
  2.  
  3. import javax.imageio.ImageIO;
  4. import javax.swing.*;
  5. import java.awt.*;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.image.BufferedImage;
  9. import java.io.File;
  10. import java.io.IOException;
  11.  
  12. import org.jfree.chart.ChartFactory;
  13. import org.jfree.chart.ChartPanel;
  14. import org.jfree.chart.ChartUtils;
  15. import org.jfree.chart.JFreeChart;
  16. import org.jfree.chart.plot.Plot;
  17. import org.jfree.chart.plot.PlotOrientation;
  18. import org.jfree.data.statistics.HistogramDataset;
  19. import org.jfree.data.xy.XYDataset;
  20. import org.jfree.data.xy.XYSeries;
  21. import org.jfree.data.xy.XYSeriesCollection;
  22.  
  23. public class Wykresy extends JPanel implements ActionListener {
  24.  
  25.     private JButton wyjscie;
  26.     public BufferedImage tlo_wykresy;
  27.     Double[] SINR = new Double[850];
  28.     Double[] SINR_dB = new Double[850];
  29.     public int nr_tytulu = 0;
  30.  
  31.     public Wykresy(){
  32.         setLayout(null);
  33.         setVisible(true);
  34.  
  35.         File zdj_menu = new File("zdjecia/strona.png");
  36.         try{ tlo_wykresy = ImageIO.read(zdj_menu); }
  37.         catch(IOException e){ System.err.println("Blad odczytu obrazków"); }
  38.  
  39.         wyjscie = new JButton("Wyjście");
  40.         wyjscie.addActionListener(this);
  41.         wyjscie.setBounds(724, 620, 200, 60);
  42.         wyjscie.setFont(new Font("Sitka Text", Font.BOLD, 25));
  43.         wyjscie.setBackground(Color.white);
  44.  
  45.         add(wyjscie);
  46.     }
  47.  
  48.  
  49.     public XYDataset dane(){
  50.         XYSeriesCollection zbior_danych = new XYSeriesCollection();
  51.         XYSeries dane = new XYSeries("");
  52.         for(int i=0; i < 850; i++){
  53.             dane.add(i, SINR_dB[i]);
  54.         }
  55.  
  56.         zbior_danych.addSeries(dane);
  57.  
  58.         return zbior_danych;
  59.     }
  60.  
  61.     public void Rysuj_wykres(){
  62.         XYDataset dane_1 = dane(); //dodawanie wartości SINR
  63.  
  64.         JFreeChart wykres_1 = ChartFactory.createXYLineChart("Funkcja wartości SINR od odległości od stacji bazowej (scenariusz NLOS)",
  65.                 "d [m]",
  66.                 "SINR [dB]",
  67.                 dane_1,
  68.                 PlotOrientation.VERTICAL,
  69.                 true, true, false);
  70.  
  71.         ChartPanel chPanel_1 = new ChartPanel(wykres_1);
  72.  
  73.         XYDataset dane_2 = dane(); //dodawanie wartości SINR
  74.  
  75.         JFreeChart wykres_2 = ChartFactory.createXYLineChart("Funkcja wartości SINR od odległości od stacji bazowej (scenariusz LOS)",
  76.                 "d [m]",
  77.                 "SINR [dB]",
  78.                 dane_2,
  79.                 PlotOrientation.VERTICAL,
  80.                 true, true, false);
  81.  
  82.         ChartPanel chPanel_2 = new ChartPanel(wykres_2);
  83.  
  84.         SwingUtilities.invokeLater(() -> {
  85.             chPanel_1.setBounds(10, 150, 480, 380);
  86.             chPanel_1.setVisible(true);
  87.  
  88.             chPanel_2.setBounds(510, 150, 480, 380);
  89.             chPanel_2.setVisible(true);
  90.         });
  91.  
  92.         add(chPanel_1);  add(chPanel_2);
  93.     }
  94.  
  95.     public void actionPerformed(ActionEvent e){
  96.         Object source = e.getSource();
  97.         if(source == wyjscie){
  98.             System.exit(0);
  99.         }
  100.     }
  101.  
  102.     public void paintComponent(Graphics graphic) {
  103.         Graphics2D g2d = (Graphics2D) graphic;
  104.         g2d.drawImage(tlo_wykresy, 0, 0, this);
  105.     }
  106. }
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement