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

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

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

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

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

textual
Листинг программы
public class MclicXY extends JFrame{
 
    public MclicXY() throws HeadlessException {
        setTitle("Tytle");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600, 600);
    }
    
    @Override
    public void paint(Graphics g){
        Rec1 rec1 = new Rec1(123, 325, 56, 98);
        rec1.paint(g);
        this.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if(e.getX()>rec1.x1 && e.getY()>rec1.y1 && e.getX()<rec1.x1+rec1.x2 && e.getY()<rec1.y1+rec1.y2){
                    JOptionPane.showMessageDialog(null, "Кординаты фигуры: Х-" + rec1.x1 + " Y-" + rec1.y1 + " Ширина-" + rec1.x2 + " Высота-" + rec1.y2);
                }
            }
        });
    }
             
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                MclicXY f = new MclicXY();
                
            }
        });
    }
}
 
class Rec1{
        int x1;
        int y1;
        int x2;
        int y2;
        
        public Rec1(int x1, int y1, int x2, int y2) {
            this.x1=x1;
            this.y1=y1;
            this.x2=x2;
            this.y2=y2;
            
        }
        
        public void paint(Graphics g){
            Graphics2D g2 = (Graphics2D) g;
            g2.setColor(Color.red);
            g2.drawRect(x1, y1, x2, y2);
            g2.fillRect(x1, y1, x2, y2);
        }
    }

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


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

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

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