Обработка событий мыши на Java ME

Обработка событий мыши на Java SE

public class lab10

{

JFrame form;

pictureBox pc;

int OldX,OldY,MouseX,MouseY,Regim;

lab10()

{

Regim=0;

......

class pictureBox extends JPanel // наследникот JPanel

implements MouseListener, // использованиепрослушиваниямыши

MouseMotionListener // использованиепрослушивания движения мыши

.........................

public pictureBox ()

{

addMouseListener(this); // подключениепрослушиваниямыши

.........................

public void paintComponent(Graphics g) // рисование

{

....

}

Перегрузить все события!

public void mousePressed(MouseEvent me)

{

if(me.getButton==1) // левая кнопка

{

OldX=me.getX();

OldY=me.getY();

MouseX=OldX;

MouseY=OldY;

Regim=1;

}

}

public void mouseClicked(MouseEvent me)

{

}

public void mouseEntered(MouseEvent me)

{

}

public void mouseExited(MouseEvent me)

{

}

public void mouseReleased(MouseEvent me)

{

if(Regim==1)

{

MouseX=me.getX();

MouseY=me.getY();

Regim=0;

}

}

public void mouseMoved(MouseEvent me) // безнажатиякнопки

{

}

public void mouseDragged(MouseEvent me)

{

if(Regim==1)

{

MouseX=me.getX();

MouseY=me.getY();

}

}

public class lab10 extends MIDlet

{

int Regim;

int OldX,OldY,MouseX,MouseY;

....

public void startApp()

{

Regim=0;

......

protected void paint(Graphics g)

{

...

}

public void pointerPressed (int x, int y)

{

OldX=x;

OldY=y;

MouseX=OldX;

MouseY=OldY;

Regim=1;

}

public void pointerReleased (int x, int y)

{

MouseX=x;

MouseY=y;

Regim=0;

}

public void PointerDragged (int x, int y)

{

MouseX=x;

MouseY=y;

}

6) Преобразование фрагмента изображения

по отдельным точкам

Пример задачи. После отпускания кнопки мыши, в данной точке

рисуется красный прямоугольник 10x14 точек. Для этого

вызывается метод AddRis.

На visual C++

public ref class Form1: public System::Windows::Forms::Form

{

public:

int Regim;

int MouseX,MouseY,OldX,OldY;

...................

void AddRis()

{

int x,y;

Color c; // цвет точки

int r,g,b;

Bitmap^ bmp = gcnew Bitmap(1,1); // временная битовая карта

bmp=(Bitmap^)pictureBox1->Image; // точки pictureBox

x=MouseX;

while(x<MouseX+10)

{

y=MouseY;

while(y<MouseY+14)

{

c=bmp->GetPixel(x,y); // получение цветов точки

r=c.R;

g=c.G;

b=c.B;

c=Color::FromArgb(255,0,0); // новые цвета RGB

bmp->SetPixel(x,y,c);

y++;

}

x++;

}

pictureBox1->Image = bmp; // закрепление к pictureBox

}

void Work()

{

Regim=0;

.....

на Java SE:

.....

int OldX,OldY,MouseX,MouseY,Regim;

int Type;

lab10()

{

Regim=0;

Type=0;

....

public void AddRis()

{

Type=1; // дорисовать

repaint();

}

public void paintComponent(Graphics g) // рисование

{

........

int x,y;

Color c;

int cold;

c=new Color(255,0,0);

if(Type==1)

{

g.setColor(c);

x=MouseX;

while(x<MouseX+10)

{

y=MouseY;

while(y<MouseY+14)

{

cold=im1.getRGB(x,y);

int red = (cold >> 16) & 0x000000FF;

int green = (cold >>8) & 0x000000FF;

int blue = (cold) & 0x000000FF;

g.drawLine(x, y, x, y);

y++;

}

x++;

}

}

Type=0;

// repaint(); убрать!!

}

public void mousePressed(MouseEvent me)

{

OldX=me.getX();

OldY=me.getY();

MouseX=OldX;

MouseY=OldY;

Regim=1;

}

public void mouseClicked(MouseEvent me)

{

}

public void mouseEntered(MouseEvent me)

{

}

public void mouseExited(MouseEvent me)

{

}

public void mouseReleased(MouseEvent me)

{

if(Regim==1)

{

MouseX=me.getX();

MouseY=me.getY();

Regim=0;

AddRis();

}

}

public void mouseMoved(MouseEvent me) // безнажатиякнопки

{

}

public void mouseDragged(MouseEvent me)

{

if(Regim==1)

{

MouseX=me.getX();

MouseY=me.getY();

}

}

на Java ME:

public class lab10 extends MIDlet

{

int Regim;

int OldX,OldY,MouseX,MouseY;

int Type;

...

g.drawImage(im1, 10, 20, Graphics.LEFT | Graphics.TOP);

int x,y;

int rr,gg,bb;

if(Type==1)

{

g.getRedComponent();

g.getGreenComponent();

g.getBlueComponent();

g.setColor(255,0,0);

x=MouseX;

while(x<MouseX+10)

{

y=MouseY;

while(y<MouseY+14)

{

g.drawLine(x, y, x, y);

y++;

}

x++;

}

}

...

public void pointerPressed (int x, int y)

{

OldX=x;

OldY=y;

MouseX=OldX;

MouseY=OldY;

Regim=1;

}

public void pointerReleased (int x, int y)

{

MouseX=x;

MouseY=y;

Regim=0;

Type=1;

repaint();

}

public void PointerDragged (int x, int y)

{

if(Regim==1)

{

MouseX=x;

MouseY=y;

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: