Advertisement
sergAccount

Untitled

Feb 6th, 2021
655
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.10 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package javaapplication21;
  7.  
  8. import java.awt.Color;
  9. import java.awt.Graphics;
  10. import java.awt.event.MouseEvent;
  11. import java.awt.event.MouseListener;
  12. import javax.swing.JPanel;
  13. // используем интерфейс MouseListener
  14. public class DrawPanel extends JPanel implements MouseListener{
  15.     // переменные типа Square
  16.     Square q1;
  17.     Square q2, q3;          
  18.     Line l1, l2;
  19.     // конструктор класса
  20.     public DrawPanel(){
  21.         q1 = new Square(10, 10, 100);
  22.         q2 = new Square(400, 400, 50);
  23.         // создаем квадрат с опред цветом
  24.         q3 = new Square(650, 450, 100, Color.orange);
  25.         // подключаем (регистрируем) обработчик событий от мыши        
  26.         l1 = new Line(0, 0, 400, 400, Color.BLACK);
  27.         l2 = new Line(400, 0, 0, 400, Color.RED);
  28.         addMouseListener(this);
  29.     }
  30.     // метод для вывода графики
  31.     public void paintComponent(Graphics g){
  32.         // вызов родительского метода
  33.         super.paintComponent(g);
  34.         // вывод прямоугольника с использованием метода класса Graphics
  35.         g.setColor(Color.blue); // установка тек-го цвета
  36.         // fillRect - для вывода закрашенного прямоугольника
  37.         //g.fillRect(0, 0, 50, 50);        
  38.         //  q1
  39.         g.fillRect(q1.getX(), q1.getY(), q1.getA(), q1.getA());
  40.         g.setColor(Color.red);
  41.         g.fillRect(q2.getX(), q2.getY(), q2.getA(), q2.getA());
  42.         // отрисовка квадрата q3 определенным цветом
  43.         //Color c3 = q3.getColor();
  44.         g.setColor(q3.getColor());
  45.         g.fillRect(q3.getX(), q3.getY(), q3.getA(), q3.getA());
  46.         // l1
  47.         // устанавливаем текущий цвет для линии
  48.         g.setColor(l1.getColor());
  49.         // вызов метода drawLine для отрисовки линии
  50.         g.drawLine(l1.getX1(), l1.getY1(), l1.getX2(), l1.getY2());
  51.         // l2
  52.         // устанавливаем текущий цвет для линии
  53.         g.setColor(l2.getColor());
  54.         // вызов метода drawLine для отрисовки линии
  55.         g.drawLine(l2.getX1(), l2.getY1(), l2.getX2(), l2.getY2());
  56.     }    
  57.     @Override
  58.     public void mouseClicked(MouseEvent e) {
  59.     }
  60.     @Override
  61.     public void mousePressed(MouseEvent e) {
  62.         System.out.println("mousePressed>>");
  63.         // коорд-та точки в которой произошло событие, какая кнопка (из трех кнопок), количество кликов
  64.         System.out.println("e.getX()=" + e.getX());
  65.         System.out.println("e.getY()=" + e.getY());
  66.         // номер кнопки
  67.         System.out.println("e.getButton()=" + e.getButton());
  68.         // при нажатии на левую кнопку мыши меняем
  69.         // значение коорд объекта на соотв координату (координата события)
  70.         if(e.getButton()==MouseEvent.BUTTON1){
  71.             System.out.println("левая кнопка!!!");
  72.             q1.setX(e.getX());
  73.             q1.setY(e.getY());
  74.             // вызываем метод для возможности обновления экрана (paintComponent)
  75.             // repaint() - для обновления экрана
  76.             repaint();
  77.         }
  78.         // количество кликов
  79.         System.out.println("e.getClickCount()=" + e.getClickCount());
  80.     }
  81.     @Override
  82.     public void mouseReleased(MouseEvent e) {
  83.     }
  84.     @Override
  85.     public void mouseEntered(MouseEvent e) {
  86.     }
  87.     @Override
  88.     public void mouseExited(MouseEvent e) {
  89.     }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement