Advertisement
martaczaska

wyr=nfdahsgk

Nov 26th, 2020
692
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.95 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.     private JLabel tytul7;
  27.     public String nazwaModelu = "";
  28.     public BufferedImage tlo_wykresy;
  29.     Double[] SINR_NLOS = new Double[850];
  30.     Double[] SINR_LOS = new Double[850];
  31.     Double[] SINR_dB_NLOS = new Double[850];
  32.     Double[] SINR_dB_LOS = new Double[850];
  33.     public int nr_tytulu = 0;
  34.  
  35.     public Wykresy(){
  36.         setLayout(null);
  37.         setVisible(true);
  38.  
  39.         File zdj_menu = new File("zdjecia/strona.png");
  40.         try{ tlo_wykresy = ImageIO.read(zdj_menu); }
  41.         catch(IOException e){ System.err.println("Blad odczytu obrazków"); }
  42.  
  43.         tytul7 = new JLabel( "Wykresy przedstawiające wartość SINR zależną od odległości UT od BS ", JLabel.CENTER);
  44.         tytul7.setBounds(5, 100, 1000, 100);
  45.         tytul7.setFont(new Font("Sitka Text", Font.BOLD, 25));
  46.  
  47.         wyjscie = new JButton("Wyjście");
  48.         wyjscie.addActionListener(this);
  49.         wyjscie.setBounds(724, 620, 200, 60);
  50.         wyjscie.setFont(new Font("Sitka Text", Font.BOLD, 25));
  51.         wyjscie.setBackground(Color.white);
  52.  
  53.         add(tytul7);
  54.         add(wyjscie);
  55.     }
  56.  
  57.  
  58.     public XYDataset dane(int k){
  59.         XYSeriesCollection zbior_danych = new XYSeriesCollection();
  60.         XYSeries dane = new XYSeries("");
  61.  
  62.         if(k == 0){
  63.             for(int i=0; i < 850; i++){
  64.                 dane.add(i, SINR_dB_NLOS[i]);
  65.             }
  66.         }
  67.         else if(k == 1){
  68.             for(int i=0; i < 850; i++){
  69.                 dane.add(i, SINR_dB_LOS[i]);
  70.             }
  71.         }
  72.  
  73.         zbior_danych.addSeries(dane);
  74.  
  75.         return zbior_danych;
  76.     }
  77.  
  78.     public void Rysuj_wykres(){
  79.         XYDataset dane_1 = dane(0); //dodawanie wartości SINR
  80.  
  81.         JFreeChart wykres_1 = ChartFactory.createXYLineChart("Funkcja wartości SINR od odległości od stacji bazowej (scenariusz NLOS)",
  82.                 "d [m]",
  83.                 "SINR [dB]",
  84.                 dane_1,
  85.                 PlotOrientation.VERTICAL,
  86.                 true, true, false);
  87.  
  88.         ChartPanel chPanel_1 = new ChartPanel(wykres_1);
  89.  
  90.         XYDataset dane_2 = dane(1); //dodawanie wartości SINR
  91.  
  92.         JFreeChart wykres_2 = ChartFactory.createXYLineChart("Funkcja wartości SINR od odległości od stacji bazowej (scenariusz LOS)",
  93.                 "d [m]",
  94.                 "SINR [dB]",
  95.                 dane_2,
  96.                 PlotOrientation.VERTICAL,
  97.                 true, true, false);
  98.  
  99.         ChartPanel chPanel_2 = new ChartPanel(wykres_2);
  100.  
  101.         SwingUtilities.invokeLater(() -> {
  102.             chPanel_1.setBounds(10, 200, 480, 380);
  103.             chPanel_1.setVisible(true);
  104.  
  105.             chPanel_2.setBounds(510, 200, 480, 380);
  106.             chPanel_2.setVisible(true);
  107.         });
  108.  
  109.         //tytul7 = new JLabel( "Wykresy przedstawiające wartość SINR dla modelu " + nazwaModelu, JLabel.CENTER);
  110.         add(chPanel_1);  add(chPanel_2); add(tytul7);
  111.     }
  112.  
  113.     public void actionPerformed(ActionEvent e){
  114.         Object source = e.getSource();
  115.         if(source == wyjscie){
  116.             System.exit(0);
  117.         }
  118.     }
  119.  
  120.     public void paintComponent(Graphics graphic) {
  121.         Graphics2D g2d = (Graphics2D) graphic;
  122.         g2d.drawImage(tlo_wykresy, 0, 0, this);
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement