Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eti.radio.pr_inz;
- import javax.imageio.ImageIO;
- import javax.swing.*;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.geom.*;
- import java.lang.Math;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- public class Licz extends JPanel implements ActionListener, MouseListener {
- private JButton wykresy;
- private JButton wyjscie;
- private JLabel[] l_BS = new JLabel[19];
- private JLabel tytul6, l_UT;
- public BufferedImage tlo_dane;
- public double BS0_x = 470, BS0_y = 400;
- String str_UT = "";
- int nw = 0;
- Wykresy rysuj_wykresy;
- public Licz(Wykresy rysuj_wykresy){
- setLayout(null);
- this.rysuj_wykresy = rysuj_wykresy;
- File zdj_menu = new File("zdjecia/strona_logo.png");
- try{ tlo_dane = ImageIO.read(zdj_menu); }
- catch(IOException e){ System.err.println("Blad odczytu obrazków"); }
- wyjscie = new JButton("Wyjście");
- wyjscie.addActionListener(this);
- wyjscie.setBounds(100, 620, 200, 60);
- wyjscie.setFont(new Font("Sitka Text", Font.BOLD, 25));
- wyjscie.setBackground(Color.white);
- wykresy = new JButton("Wykresy");
- wykresy.addActionListener(this);
- wykresy.setBounds(724, 620, 200, 60);
- wykresy.setFont(new Font("Sitka Text", Font.BOLD, 25));
- wykresy.setBackground(Color.white);
- System.out.println("Wybrany model: " + rysuj_wykresy.s);
- System.out.println("Wybrany scenariusz O2I: " + nw);
- tytul6 = new JLabel( "Wskaż położenie terminala użytkownika w komórce zerowej", JLabel.CENTER);
- tytul6.setSize(1000, 100);
- tytul6.setLocation(5, 50);
- tytul6.setFont(new Font("Sitka Text", Font.BOLD, 23));
- for(int i=0; i < 19; i++){
- l_BS[i] = new JLabel( "BS" + i, JLabel.CENTER);
- l_BS[i].setFont(new Font("Sitka Text", Font.BOLD, 23));
- //add(l_BS[i]);
- }
- add(l_BS[0]);
- l_UT = new JLabel( "UT", JLabel.CENTER);
- l_UT.setFont(new Font("Sitka Text", Font.BOLD,23));
- l_UT.setForeground(Color.RED);
- add(tytul6); add(l_UT); add(wyjscie); add(wykresy);
- addMouseListener(this);
- }
- public void actionPerformed(ActionEvent e){
- Object source = e.getSource();
- if(source == wykresy){
- CardLayout CL =(CardLayout)(Main.noweOkno.karty.getLayout());
- CL.show(Main.noweOkno.karty, "rysuj_wykresy");
- double roznica_x = 0, roznica_y = 0;
- //ze względu na powiększony promień koła wyznaczającego powierzchnię komórki dla ułatwienia zaznacznia kliknięciem położenia UT,
- //należy zmniejszyć odległość UT od BS0 aby była odpowiednia do proporcji względem wymiarów komórki
- if((rysuj_wykresy.UT_x >= rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y <= rysuj_wykresy.y[0])){ // I ćwiartka
- roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
- roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
- rysuj_wykresy.x_UT = rysuj_wykresy.x[0] + roznica_x/2;
- rysuj_wykresy.y_UT = rysuj_wykresy.y[0] - roznica_y/2;
- }else if((rysuj_wykresy.UT_x < rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y < rysuj_wykresy.y[0])){ // II ćwiartka
- roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
- roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
- rysuj_wykresy.x_UT = rysuj_wykresy.x[0] - roznica_x/2;
- rysuj_wykresy.y_UT = rysuj_wykresy.y[0] - roznica_y/2;
- }else if((rysuj_wykresy.UT_x <= rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y >= rysuj_wykresy.y[0])){ // III ćwiartka
- roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
- roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
- rysuj_wykresy.x_UT = rysuj_wykresy.x[0] - roznica_x/2;
- rysuj_wykresy.y_UT = rysuj_wykresy.y[0] + roznica_y/2;
- }else if((rysuj_wykresy.UT_x > rysuj_wykresy.x[0]) &&(rysuj_wykresy.UT_y > rysuj_wykresy.y[0])){ // IV ćwiartka
- roznica_x = Math.abs(rysuj_wykresy.x[0] - rysuj_wykresy.UT_x);
- roznica_y = Math.abs(rysuj_wykresy.y[0] - rysuj_wykresy.UT_y);
- rysuj_wykresy.x_UT = rysuj_wykresy.x[0] + roznica_x/2;
- rysuj_wykresy.y_UT = rysuj_wykresy.y[0] + roznica_y/2;
- }
- rysuj_wykresy.UT_odl = Math.sqrt(Math.pow((rysuj_wykresy.x_UT - rysuj_wykresy.x[0]), 2) + Math.pow((rysuj_wykresy.y_UT - rysuj_wykresy.y[0]), 2));
- rysuj_wykresy.pathLossDlaModelu(rysuj_wykresy.x_UT, rysuj_wykresy.y_UT, rysuj_wykresy.f_c, rysuj_wykresy.s);
- rysuj_wykresy.licz_SINR();
- rysuj_wykresy.daneNLOS();
- rysuj_wykresy.daneLOS();
- rysuj_wykresy.daneNLOS_zaniki();
- rysuj_wykresy.daneLOS_zaniki();
- rysuj_wykresy.Rysuj_wykres();
- }
- else if(source == wyjscie){
- System.exit(0);
- }
- }
- public void mouseClicked(MouseEvent e) {}
- public void mousePressed(MouseEvent e) {
- rysuj_wykresy.UT_x = e.getX();
- rysuj_wykresy.UT_y = e.getY();
- str_UT = "UT";
- System.out.println("Nacisnięty punkt: x = " + rysuj_wykresy.UT_x + " y = " + rysuj_wykresy.UT_y);
- repaint();
- }
- public void mouseReleased(MouseEvent e) {}
- public void mouseEntered(MouseEvent e) {}
- public void mouseExited(MouseEvent e) {}
- public void paintComponent(Graphics graphic) {
- Graphics2D g2d = (Graphics2D) graphic;
- Graphics2D g2d_BS0 = (Graphics2D) graphic;
- g2d.drawImage(tlo_dane, 0, 0, this);
- Ellipse2D circle0 = new Ellipse2D.Double(274, 204, 196*2, 196*2);
- Rectangle2D BS0 = new Rectangle2D.Double((int)circle0.getCenterX(), (int)circle0.getCenterY(), 5, 5);
- l_BS[0].setBounds((int)BS0.getX()-15, (int)BS0.getY()-15, 100, 50);
- g2d_BS0.setPaint(Color.RED);
- Ellipse2D UT = new Ellipse2D.Double(rysuj_wykresy.UT_x, rysuj_wykresy.UT_y, 5, 5);
- l_UT.setBounds((int)UT.getX()-15, (int)UT.getY()-15, 80, 50);
- g2d_BS0.draw(BS0); g2d.draw(circle0); g2d.draw(UT);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment