Сделать событие при клике по форме 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д