Как я могу реагировать на события Mouse в апплете Java и затем рисовать соответственно? - PullRequest
0 голосов
/ 18 февраля 2011

Моя домашняя работа:

Напишите апплет, который нарисует дом, показанный слева на рисунке 14-32.Когда пользователь нажимает на дверь или окна, они должны закрыться.На рисунке справа показан дом с закрытыми дверями и окнами.

Я в основном хочу Java-апплет, в котором, если пользователь нажимает на прямоугольник, неожиданно создается и рисуется другой.

Вот мой код.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class test2 extends JApplet
{
    private final int currentX = 0;


    public void init()
    {
        addMouseListener(new MyMouseListener());
    }

    public void paint (final Graphics g)
    {
        super.paint (g);

        g.drawRect(100, 100, 200, 200);
    }

    private class MyMouseListener extends MouseAdapter
    {

        currentX = e.getX();
    }
}

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Взгляните на Учебник по Java | Как написать слушателя мыши . Это поможет вам определить, когда и где пользователь нажимает. Получив эти (x, y) координаты, вы можете проверить, лежат ли они в окне или двери, и если да, нарисуйте что-нибудь еще.

Пример кода:

   public void mouseClicked(MouseEvent e) {
       int x = e.getX();
       int y = e.getY();

       //check if (x,y) lie in a certain rectangle
       if(x>100 && x<300 && y>100 && y<300){
           //set a variable and repaint
           closeDoors = true;
           repaint();
       }
   }

В вашем методе рисования вам нужно проверить, установлена ​​ли переменная closeDoors, и если да, нарисуйте что-нибудь еще.

public void paint (final Graphics g){
    super.paint (g);
    g.drawRect(100, 100, 200, 200);
    if(closeDoors){
        g.fillRect(100, 100, 200, 200);
    }
}
0 голосов
/ 18 февраля 2011

Когда пользователь нажимает на дверь или окна , вы проверяете, находятся ли координаты мыши внутри окна или области двери, и если да, вы заменяете чертеж открытой двери или открытого окна на чертеж закрытой, который будет выглядеть следующим образом: они должны закрыться .

Итак, вот что вам нужно сделать:

  • модель "дома" состоит из здания, двери и окна, каждое из которых представлено координатами
  • «Дверь» и «Окно» могут быть окрашены в «открытом» или «закрытом» режиме
  • Вам необходим test метод, чтобы проверить, произошел ли щелчок мышью "на" окне или "на" двери

Совет : ваша текущая реализация MouseListener вообще не работает. Вы должны переопределить методы из MouseAdapter и поместить свой тест в соответствующий метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...