લેબલ addMouseMotionListener() સાથે પોસ્ટ્સ બતાવી રહ્યું છે. બધી પોસ્ટ્સ બતાવો
લેબલ addMouseMotionListener() સાથે પોસ્ટ્સ બતાવી રહ્યું છે. બધી પોસ્ટ્સ બતાવો

શુક્રવાર, 23 માર્ચ, 2018

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

Experiment : 12
આપણે આ practical માં mouse event નો ઉપયોગ કરવા નો છે. Mouse event માં પણ mouse press અને mouse release.

Code = Exp12.java

import java.awt.*;
import java.awt.event.*;

public class Exp12 extends Frame implements MouseListener
{
   TextField t1,t2;
   Exp12()
   {
       setVisible(true);
       setSize(500,500);
       setLayout(new FlowLayout());
       t1=new TextField(20);
       t2=new TextField(20);
       add(t1);
       add(t2);
       addMouseListener(this);
   }

   public void mouseReleased(MouseEvent e)
   {
       System.out.println("Mouse is released");
       t1.setText("Mouse is released");
   }

   public void mousePressed(MouseEvent e)
   {
       System.out.println("Mouse is pressed");
       t1.setText("Mouse is pressed");
   }
   public void mouseEntered(MouseEvent e)
   {
     t2.setText("Mouse is In");
   }
   public void mouseExited(MouseEvent e)
   {
     t2.setText("Mouse is Exite");
   }
   public void mouseClicked(MouseEvent e)
   {

   }
   public static void main(String args[])
   {
       new Exp12();
   }
}


  • Output :










આ પ્રોગ્રામમાં, એક Frame બનાવવામાં આવ્યો છે અને તેમાં એવી માઉસની ઘટનાઓનું સમર્થન કરવા માટે MouseListener ઇન્ટરફેસનો ઉપયોગ કરવામાં આવ્યો છે. જ્યારે માઉસ એન્ટર કરે છે, ત્યારે "Mouse entered the frame." મેસેજ મુદ્દાઈ દીધો છે, અને જ્યારે માઉસ એક્ઝિટ કરે છે, ત્યારે "Mouse exited the frame." મેસેજ મુદ્દાઈ દીધો છે.આ પ્રોગ્રામનો રન કરાવીને, તમારે ફોર્મ પર માઉસ એન્ટર અને એક્ઝિટ ઇવેન્ટનું અનુભવ કરવામાં આવશે. અમુક સમયને ફોર્મ પર માઉસનું સ્થાન ચેક કરીને "Mouse entered the frame." અથવા "Mouse exited the frame." મેસેજ દેખવામાં આવશે


જાવા AWT (Abstract Window Toolkit) માઉસ ઇવેન્ટ્સ તમારા પ્રોગ્રામને માઉસની ક્રિયાઓ અથવા માઉસની ઘટનાઓનો સમર્થન કરે છે. ઉદાહરણ તરીકે, તમે માઉસ કરીને કોઈ બટનને ક્લિક કરી શકો છો, બટન સ્ક્રોલ કરી શકો છો અને માઉસ સ્ક્રોલ કરી શકો છો.

જાવા AWT માઉસ ઇવેન્ટ્સ માટે, તમારી એપ્લિકેશનમાં મોટાભાગની પોપ્યુલર ઇવેન્ટ્સ હેરાન કરેલ વિગતોમાં, MouseListener અને MouseMotionListener હોય છે. MouseListener તમારે માઉસની ક્રિયાઓનું સમર્થન કરે છે (જે માઉસનું સ્થિતિમાં બદલે છે, માઉસ ક્લિક કરે છે, બટન માઉસ પર અક્ષર ને સ્ક્રોલ કરે છે) અને MouseMotionListener તમારી એપ્લિકેશનમાં માઉસની કર્યાનું સમર્થન કરે છે (જે માઉસનું સ્થિતિમાં ફેરફાર કરે છે).

માઉસ પ્રેસ ઇવેન્ટ તમારી માઉસ બટનને ક્લિક કરવામાં સંબંધિત છે. જ્યારે તમે માઉસનું કોઈ બટન પ્રેસ કરો છો, આપતું બટનનો પ્રેસ ઇવેન્ટ ઉંમરે છે. આ ઇવેન્ટ ઘટના સંબંધિત માઉસ બટનનું સ્થાયી કે સ્થાનિક અવસ્થાને લેવામાં આવે છે.

આપતું માઉસ પ્રેસ ઇવેન્ટનું અભિગમ તમારી એપ્લિકેશનમાં MouseListener ઇન્ટરફેસની મદદથી કરી શકાય છે. તમારી એપ્લિકેશનમાં MouseListenerનાં મેથડ્સમાં મુખ્ય છે: mousePressed() અને mouseReleased(). જ્યારે તમે માઉસનો બટન પ્રેસ કરો છો, mousePressed() મેથડ ચલે છે અને જ્યારે તમે બટનને રિલીઝ કરો છો, mouseReleased() મેથડ ચલે છે.

આ ઇવેન્ટ્સ નું સરળ ઉદાહરણ હોય તો, તમે માઉસને બટન પ્રેસ કરીને કેટલાક કાર્યો કરેલ છો અને તમે બટનને રિલીઝ કરીને કેટલાક અન્ય કાર્યો કરેલ છો.

આપણે કોઈ પણ કામ computer માં કર્યે તો mouse નો ઉપયોગ થાય જ છે. એમાં પણ જો track કરવું હોય જોવું હોય શું થાય તે જાણવા mouse event નો ઉપયોગ કર્યે.

માઉસ એન્ટર (Mouse Enter) અને માઉસ એક્ઝિટ (Mouse Exit) ઇવેન્ટ માઉસની અવસ્થાની બદલાવ સંબંધિત છે. જ્યારે માઉસ માઉસ કંપોઝિશનમાં બદલે છે, આ ઇવેન્ટ્સ કાર્યક્રમ ચલાવે છે.

માઉસ એન્ટર (Mouse Enter) ઇવેન્ટ જ્યારે માઉસ એપ્લિકેશનની એક બંદ વિંડો થી બીજી બંદ વિંડોમાં પ્રવેશ કરે છે ત્યારે ઘટે છે. આ ઇવેન્ટમાં, માઉસનું કર્યું સ્થાન તમારી એપ્લિકેશનની પરિમિતિઓની અંદર આવે છે.

માઉસ એક્ઝિટ (Mouse Exit) ઇવેન્ટ જ્યારે માઉસ એપ્લિકેશનની એક બંદ વિંડોમાંથી બીજી બંદ વિંડોમાં નિકલે છે ત્યારે ઘટે છે. આ ઇવેન્ટમાં, માઉસનું કર્યું સ્થાન તમારી એપ્લિકેશનની પરિમિતિઓની બહાર જતું દેખાય છે.

આ ઇવેન્ટ્સ માટે, તમારી એપ્લિકેશનમાં MouseListener ઇન્ટરફેસનો ઉપયોગ કરી શકાય છે, જે માઉસના સંબંધિત મેથડનું સમર્થન કરે છે.



આપણે ક્યાં click કરી ક્યાં drag કર્યું ક્યારે relese કર્યું તે બધું આ mouse event listener દ્વારા જાણી શકાય ઊપયોગ કરી શકાય.

આમાં પણ awt library નો import (keyword) નો ઉપયોગ કરી ને લાઇબ્રેરી add કરી.

public class Exp12 extends Frame implements MouseListener

Exp12 માં frame extand કરાવ્યું inherent કર્યું અને Mouselisener ને implement કર્યું જેથી તેમાં રહેલી method ને define ઉપયોગ કરી શકાય આપણ પ્રમાણે.

TextField t1,t2;

બે t1 ને t2 નામની textfield બનાવી જેથી કરી ને તેમાં આપણે show કરી કે code માં શું થાય છે. કઈ method use માં આવે છે.

Exp12()
   {
       setVisible(true);
       setSize(500,500);
       setLayout(new FlowLayout());
       t1=new TextField(20);
       t2=new TextField(20);
       add(t1);
       add(t2);
       addMouseListener(this);
   }

ત્યાર બાદ Exp12() જે એક constructer છે કેમકે class નું નામ સરખું છે તેથી.

ત્યારબાદ ક્રમશઃ size setSize () દ્વારા 
new TextField(20) દ્વારા text field જેની default size 20 છે.
અને ત્યાર બાદ add (); નો ઉપયોગ કરી ને તેમાં add કર્યું.

addMouseListener (this)
આના લાઇન નો ઉપયોગ કરી ને Mouselisener ને add કર્યું  જેમાં this(keyword) લખી ને object પાસ કર્યો 

ત્યાર બાદ mouse event listener
  • mouseReleased
  • mousePressed
  • mouseEntered
  • mouseExited
  • mouseClicked
mousePressed ત્યારે call થશે જ્યારે mouse નું button દબાવી રાખ્યું હોય એટલો time mouse pressed t1 text field માં લખાઇલું રેહસે.

જેવુ છોડસો click છોડશો તેવું mouse release call થશે. ને t1 textfield માં લખસે "Mouse is released"

mouseclicked ત્યારે run થશે press અને released થાય એટલે clicked થાય.

જ્યારે applet frame માં pointer દાખલ થાય ત્યારે mouseEntered run થાય t2 textfield માં "Mouse is in" થસે.

જ્યારે applet frame માં pointer બહાર થાય ત્યારે mouseExit run થાય t2 textfield માં "Mouse is Exite" થસે.

તમે કઈ જોયું screen shot માં cmd માં પણ print થાય છે.
System.out.println("");
ના લીધે Cmd માં પણ સાથે સાથે print થાય છે. 
Mouse press અને mouse release ને cmd માં print કર્યું છે કેમકે એ તરત જ પળ વારમાં થઇ જાય છે. એટલે cmd મા રેકોર્ડ થાય છે એટલે તેમાં જોઈ સકાય.


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 કરી નાખશે.

Python tkinter

 Tkinter એ python ની graphics tool library છે. Tkinter library ની મદદ થી આપણૅ કમ્પ્યુટર applaction બનાવી સકે. હમણાં સુધી આપણૅ અલગ અલગ script...