Advertisement
FlyChsCake

Jaba 12 - 9

Dec 5th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. package labs;
  2.  
  3. import java.lang.Math;
  4. import java.util.ArrayList;
  5. import java.awt.Color;
  6. import java.awt.Dimension;
  7. import java.awt.Graphics;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.event.MouseListener;
  10. import javax.swing.JFrame;
  11.  
  12. public class MyClass extends JFrame implements MouseListener {  
  13.     public MyClass() {
  14.         Dimension d = new Dimension(600, 600);
  15.         setSize(d);
  16.         setTitle("Lab12");
  17.         setLocation(150, 350);
  18.         addMouseListener(this);
  19.         getContentPane().setBackground(Color.WHITE);
  20.     }
  21.  
  22.     public ArrayList<MouseEvent> backup = new ArrayList<MouseEvent>();
  23.  
  24.     public static void main(String[] args) {
  25.         MyClass w = new MyClass();
  26.         w.setVisible(true);
  27.     }
  28.  
  29.     private void eventToDo(MouseEvent event) {
  30.         backup.add(event);
  31.         Graphics g = getGraphics();
  32.         paint(g);
  33.     }
  34.  
  35.     public void drawMyPolygon(MouseEvent event, Graphics g) {
  36.         double X = event.getX(),
  37.                Y = event.getY(),
  38.                R = 15;
  39.         int N = 4;
  40.         int[] xs = new int[N], ys = new int[N];
  41.         double angle;
  42.  
  43.         for (int i = 0; i < N; i++)
  44.         {
  45.             angle = 2*Math.PI*i/N;
  46.             xs[i] = (int)(R*Math.cos(angle)+X);
  47.             ys[i] = (int)(R*Math.sin(angle)+Y);
  48.         }
  49.         g.setColor(Color.BLUE);
  50.         g.drawPolygon(xs, ys, N);
  51.         //g.fillPolygon(xs, ys, N);
  52.     }
  53.  
  54.     @Override
  55.     public void paint(Graphics g) {
  56.         super.paint(g);
  57.         for (MouseEvent event : backup) {
  58.             drawMyPolygon(event, g);
  59.         }
  60.     }
  61.  
  62.     public void mouseEntered(MouseEvent event) {}
  63.     public void mouseExited(MouseEvent event) {}
  64.     public void mousePressed(MouseEvent event) {
  65.         if (event.getButton() == MouseEvent.BUTTON2) {
  66.             eventToDo(event);
  67.         }
  68.     }
  69.     public void mouseReleased(MouseEvent event) {}
  70.     public void mouseClicked(MouseEvent event) {}
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement