Write an applet that display the position of the mouse at the upper left corner of the applet when it is dragged or moved. draw a 10x10 pixel rectangle filed with black at the current mouse position

Experiment : 10
આ practical માં આપણે applet માં mouse ની movement હલન ચલન કે drag ના આધાર પર જ્યાં mouse નું pointer હોય ત્યાં 10*10 નુ box થવું જોઈએ.
Code = Exp10.java

import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;
/*<applet code="Exp10.class" height=500 width=500>
</applet>*/
public class Exp10 extends Applet implements MouseMotionListener
{
    int x,y;
    public void init()
    {
        addMouseMotionListener(this);
    }
    public void mouseDragged(MouseEvent e)
    {
        x=e.getX();
        y=e.getY();
        repaint();        
    }
    public void mouseMoved(MouseEvent e)
    {
        x=e.getX();
        y=e.getY();
        repaint();
    }
    public void paint(Graphics g)
    {
        g.fillRect(x,y,10,10);
    }
}


  • Output :




માઉસ ડ્રેગ (Mouse Dragged) અને માઉસ મૂવ્ડ (Mouse Moved) ઇવેન્ટ બધા માઉસના સ્થાન બદલાવ સંબંધિત છે, પરંતુ તેમમાં ફરક છે કે માઉસ ની ક્યારેય એક છક્કો માંથી પાસે જવું શું છે.

1. માઉસ ડ્રેગ (Mouse Dragged):
જ્યારે તમે માઉસને એક માઉસ બટનનો સાથે કોઈ વસ્તુ પાસે ઘસો છો, અને માઉસ બટન દબાવેલી અવસ્થામાં છે, ત્યારે માઉસ ડ્રેગ (Mouse Dragged) ઇવેન્ટ ચલે છે. આ ઇવેન્ટમાં, માઉસનો નવો સ્થાન અને સંદર્ભનો પ્રદર્શાવવામાં આવે છે.

2. માઉસ મૂવ્ડ (Mouse Moved):
જ્યારે માઉસને કોઈ માઉસ બટન દબાવી રહીને કામ ન કરીને એક છક્કો થી બીજુ છક્કો સમયે પાસે જવું શું છે, ત્યારે માઉસ મૂવ્ડ (Mouse Moved) ઇવેન્ટ ચલે છે. આ ઇવેન્ટમાં, માઉસનો નવો સ્થાન અને સંદર્ભનો પ્રદર્શાવવામાં આવે છે.

આપેલ સમજાવાનો ઉદાહરણ માટે, તમારી એપ્લિકેશનમાં જ્યારે માઉસને માઉસ બટન દબાવેલી અવસ્થામાં વસ્તુનો સ્થાન બદલાવે છે, ત્યારે માઉસ ડ્રેગ (Mouse Dragged) ઇવેન્ટ ચલે છે. અને જ્યારે માઉસને કોઈ માઉસ બટન દબાવી રહીને કામ ન કરીને એક છક્કો થી બીજુ છક્કો સમયે પાસે જવું શું છે, ત્યારે માઉસ મૂવ્ડ (Mouse Moved) ઇવેન્ટ ચલે છે. તમારી એપ્લિકેશનમાં આ ઇવેન્ટનું સમર્થન કરવા માટે, તમે MouseMotionListener ઇન્ટરફેસનો ઉપયોગ કરી શકો છો.



Simple ભાષા માં કહ્યે તો જેવું mouse હલન ચલન કરે તેમતેમ box ખસવું જોઈએ ટૂંકમાં mouse pointer track પીછો થવું જોઈએ.

આ વસ્તુ કરવી હોય તો આપણે movement track અને પાછું ચોરસ દોરવાનું જેવુ movement થાય એટલે આટલું થવું જોઇએ.

Stap by stap જોઈએ code માં શું કર્યું છે આપણે.

import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;
 
પેહલા તો import (keyword) દ્વારા જે કોઈ  લાઇબ્રેરી ઊપયોગ કરવાના તેને add કરી છે applet અને event pointer ના movement check કરવા.

/*<applet code="Exp10.class" height=500 width=500>
</applet>*/


આનો ઉપયોગ 500*500 નુ applet ની window બનાવવા ઊપયોગ કર્યો છે. જેનો code જે કામ કરવાનું તે Exp10.class માં છે.

public class Exp10 extends Applet implements MouseMotionListener

આ લાઇન દ્વારા Exp10 નામનો ક્લાસ બનાવ્યો અને તેમાં Applet ને extend inherent કરાવ્યું જેથી applet ની functionalities નો ઉપયોગ કરી શકાય અને MouseMotionListener ને implement કરાવ્યું કેમ કે આપણે mouse pointer ની position અને movement નું ઊપયોગ કરવાના છે.

int x,y;

હવે બે variable (ચલ) લીધા x અને y કારણ કે mouse pointer ના cordinate જે છે તે x અને y ના ફોર્મ માં આવશે.

`getX()` અને `getY()` પ્રોગ્રામિંગ માં માઉસ ઇવેન્ટ્સ સંબંધિત છે.

- `getX()` અને `getY()`:
   આ મેથડ્સ `MouseEvent` ક્લાસની એક પબ્લિક મેથડ છે, જે માઉસ ઇવેન્ટ થવાથી માઉસના સ્ક્રીન સંદર્ભમાં માઉસનું X અને Y કોઆર્ડિનેટ્સ પ્રાપ્ત કરે છે. `getX()` મેથડ માઉસનું X કોઆર્ડિનેટ અને `getY()` મેથડ માઉસનું Y કોઆર્ડિનેટ પ્રદાન કરે છે.

   ઉદાહરણ તરીકે, જો તમે માઉસનું X અને Y કોઆર્ડિને માઉસ એન્ટર અને માઉસ એક્ઝિટ ઇવેન્ટ વખતે પ્રિંટ કરવા માંગો છો, તો તમે આવીકરવામાં `getX()` અને `getY()` મેથડ્સનો ઉપયોગ કરી શકો છો.

- `repaint()`:
   `repaint()` મેથડ એ Java માં `Component` ક્લાસનો એક પ્રોટેક્ટેડ મેથડ છે. આ મેથડનો ઉપયોગ પ્રાથમિકરૂપે GUI એલીમેન્ટને રીપેંટ કરવા માટે કરવામાં આવે છે. કોઈની સ્ક્રીન પર પરિવર્તન થતાં તે પ્રાથમિક રૂપે રીપેંટ કરવામાં આવે છે.

   ઉદાહરણ તરીકે, જો તમારી એપ્લિકેશનમાં માઉસના એન્ટર અને એક્ઝિટ ઇવેન્ટ વખતે પરિવર્તન થતો હોય, અને તમે પ્રતિક્રિયા માટે તમારા GUI એલીમેન્ટને રીપેંટ કરવાનું માંગો છો, તો આપના `repaint()` મેથડનો ઉપયોગ કરી શકો છો.

   ઉદાહરણ તરીકે, જ્યારે તમે માઉસનું X અને Y કોઆર્ડિને માઉસ એન્ટર અને માઉસ એક્ઝિટ ઇવેન્ટ વખતે પ્રિંટ કરવા માટે `getX()` અને `getY()` મેથડ્સનો ઉપયોગ કરી શકો છો, અને તમારા GUI એલીમેન્ટને રીપેંટ કરવા માટે `repaint()` મેથડનો ઉપયોગ કરી શકો છો.

   ઉપરોક્ત પ્રયોગો અને માઇક્રોસોફ્ટ વિન્ડોઝ વિનમાર્ગના કોડને દર્શાવવા માટે તમારે GUI એલીમેન્ટને રીપેંટ કરવાની જરૂર છે, કારણ કે તમારી એપ્લિકેશનનો પ્રયોગકર્તાઓ સાથે ઇન્ટરએક્શન થતો છે અને તમારી એપ્લિકેશનનો પ્રદર્શન સંબંધિત વસ્તુઓ પર ફરી એવા પરિવર્તનોની જરૂર હોઈ શકે છે.



public void mouseDragged(MouseEvent e)
    {
        x=e.getX();
        y=e.getY();
        repaint();        
    }

હવે mouse નું જો drag થાય તો તરત જ mouseDragged function call થસે.
જે getX(); દ્વારા mouse pointer ના X cordinet આપશે અને x નામનાંvariable માં નાખ સે.
જે getY(); દ્વારા mouse pointer ના Y cordinet આપશે અને y નામનાં variable માં નાખ સે.

અને repaint();  call થસે જેના દ્વારા પાછું નવું 10*10 નું box draw થસે.

public void mouseMoved(MouseEvent e)
    {
        x=e.getX();
        y=e.getY();
        repaint();
    }

આમાં પણ same mouse drag જેવુ જ થસે પણ mouse move par

fillRect() એપી એ Java માં Graphics ક્લાસનો એક મેથડ છે જેથી તમે રેક્ટાંગલને ભરી શકો છો.આ મેથડનું ઉપયોગ તમારી એપ્લિકેશનમાં ખાલી રેક્ટાંગલ બનાવવામાં થાય છે. તેમ જ તમે દિશાયેવા રેક્ટાંગલ બનાવવામાં પણ આનંદ મળે.

public void paint(Graphics g)
    {
        g.fillRect(x,y,10,10);
    }


અને અંતે paint function ()
આ paint function જે fillRact નો ઉપયોગ કરી ને x અને y variable માં રહેલા cordinet પર 10 hight અને. 10 width નું ચોરસ બનાવ સે.

દર વખતે જેવુ પણ mouse pointer હલસે તેવું તરત x અને y નવા coordinate લઈને ચોરાસ draw કરી નાખશે.

ટિપ્પણીઓ

આ બ્લૉગ પરની લોકપ્રિય પોસ્ટ્સ

Write an applet that uses the mouse listener, which overrides only two methods which are mousePressed and mouseReleased

Write an applet that draws a circle. The dimension of the applet should be 500 x 300 pixels. The circle should be centered in the applet and have a radius of 100 pixels. Display your name centered in a circle.( using drawOval() method ).