Сделать событие при клике по форме JComponent - Java

Узнай цену своей работы

Формулировка задачи:

Допустим создал окно и нарисовал в нем красный квадрат
Листинг программы
  1. g.setColor(Color.red);
  2. g.fillRect(10, 10, 100, 100);
Мне надо при клике по этому квадрату узнать его координаты. Возможно ли это в java в среде eclipse впринципе? Спасибо за отклики

Решение задачи: «Сделать событие при клике по форме JComponent»

textual
Листинг программы
  1. public class MclicXY extends JFrame{
  2.  
  3.     public MclicXY() throws HeadlessException {
  4.         setTitle("Tytle");
  5.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  6.         setSize(600, 600);
  7.     }
  8.    
  9.     @Override
  10.     public void paint(Graphics g){
  11.         Rec1 rec1 = new Rec1(123, 325, 56, 98);
  12.         rec1.paint(g);
  13.         this.addMouseListener(new MouseAdapter() {
  14.             @Override
  15.             public void mouseClicked(MouseEvent e) {
  16.                 if(e.getX()>rec1.x1 && e.getY()>rec1.y1 && e.getX()<rec1.x1+rec1.x2 && e.getY()<rec1.y1+rec1.y2){
  17.                     JOptionPane.showMessageDialog(null, "Кординаты фигуры: Х-" + rec1.x1 + " Y-" + rec1.y1 + " Ширина-" + rec1.x2 + " Высота-" + rec1.y2);
  18.                 }
  19.             }
  20.         });
  21.     }
  22.              
  23.     public static void main(String[] args) {
  24.         EventQueue.invokeLater(new Runnable() {
  25.             @Override
  26.             public void run() {
  27.                 MclicXY f = new MclicXY();
  28.                
  29.             }
  30.         });
  31.     }
  32. }
  33.  
  34. class Rec1{
  35.         int x1;
  36.         int y1;
  37.         int x2;
  38.         int y2;
  39.        
  40.         public Rec1(int x1, int y1, int x2, int y2) {
  41.             this.x1=x1;
  42.             this.y1=y1;
  43.             this.x2=x2;
  44.             this.y2=y2;
  45.            
  46.         }
  47.        
  48.         public void paint(Graphics g){
  49.             Graphics2D g2 = (Graphics2D) g;
  50.             g2.setColor(Color.red);
  51.             g2.drawRect(x1, y1, x2, y2);
  52.             g2.fillRect(x1, y1, x2, y2);
  53.         }
  54.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут