sergAccount

Untitled

Feb 6th, 2021
497
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×