Сделать событие при клике по форме JComponent - Java
Формулировка задачи:
Допустим создал окно и нарисовал в нем красный квадрат
Мне надо при клике по этому квадрату узнать его координаты.
Возможно ли это в java в среде eclipse впринципе?
Спасибо за отклики
g.setColor(Color.red); g.fillRect(10, 10, 100, 100);
Решение задачи: «Сделать событие при клике по форме 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);
}
}