.
Java для чайников. Урок 6. События (mouseDown, mouseMove, Event).
Автор megabax   
03.11.2011 г.
В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Java для чайников. Урок 6. События (mouseDown, mouseMove, Event).

Посмотреть пример апплета, разработанного на данном уроке, можно здесь.

 

Сегодня мы займемся обработкой событий. События в системе Windows и других многозадачных системах могут быть разные: нажатие на кнопочку мыши, нажатие на кнопку на клавиатуре, перемещение указателя мыши и другие. Java-апплеты могут перехватывать такие события и как то реагировать на на них.  Для демонстрации этой возможности Java попробуем создать апплет, в котором можно рисовать мышкой кривую линию:

 

Java для чайников. Урок 6. События (mouseDown, mouseMove, Event).

 

Для перехвата событий мыши в данном примере мы будет использовать предопределенные методы класса Applet mouseDown и mouseMove:

import java.awt.*;

import java.applet.*;

 

 

public class DrawExample extends Applet {

    Point startPoint;

    Point points[];

    int numPoints;

    boolean drawing;

   

    public void init()  {

        startPoint= new Point(0,0);

        points=new Point[1000];

        drawing=false;

        resize(300,400);

    }

   

    public void paint(Graphics g) {

        int oldX=startPoint.x;

        int oldY=startPoint.y;

        for(int i=0; i<numPoints; ++i) {

            g.drawLine(oldX, oldY, points[i].x,points[i].y);

            oldX=points[i].x;

            oldY=points[i].y;

        }

    }

   

    public boolean mouseDown(Event evt, int x, int y) {

        if(!drawing) {

            startPoint.x=x;

            startPoint.y=y;

        }

        drawing=!drawing;

        return true;

    }

   

    public boolean mouseMove (Event evt, int x, int y) {

        if((drawing)&&(numPoints<1000)) {

            points[numPoints]=new Point(x,y);

            ++numPoints;

            repaint();

        }

        return true;

    }

}

 

Работает этот апплет следующим образом: при нажатии на кнопочку мыши меняется режим (переменная drawing), при перемещении мыши, если у нас режим drawing включен, запоминается позиция, куда была перемещена мышь. В методе paint, который отвечает за прорисовку апплета, мы просто соединяем эти точки линией.

 

 

(С) Шуравин Александр

 

 

Последнее обновление ( 03.11.2011 г. )