Java Robot is a part of Java AWT (Abstract Window Toolkit ) package . Java Robot is used to generate native system input events for the purposes of test automation, self-running demos, and other applications where control of the mouse and keyboard is needed. The purpose of using Java Robot is to gain the control of input events such as mouse, keyboard etc.
In this article we will create a Magnifying toolusing JAVA Robot .
Methods used :Â
Â
- getPointerInfo() : Returns a PointerInfo instance that represents the current location of the mouse pointer.
- getLocation() : returns a point instance that represents location
- createScreenCapture(Rectangle r) : captures a part of screen which is within the rectangle r.
- drawImage(Image i, int x, int y, ImageObserver o) : draws an image at x, y position on the screen specifying an image observer
- drawImage(Image i, int x, int y,,int w, int h, ImageObserver o) : draws an image at x, y position and specified width and height on the screen specifying an image observer
Java program to create a Magnifying tool using Java RobotÂ
Â
Java
// Java program to create a Magnifying tool // using Java Robot Â
import java.awt.event.*; import javax.swing.*; import java.awt.*; class magnify extends JFrame { Â
    // object     static magnify m; Â
    // image     Image i; Â
    // default constructor     magnify()     {         // create a frame         super ( "magnify" ); Â
        // set size of frame         setSize( 200 , 220 );         show(); Â
        // function to magnify the image         work();     } Â
    // main function     public static void main(String args[])     { Â
        // object of class         m = new magnify();     } Â
    public void work()     {         try {             // create a robot             Robot r = new Robot(); Â
            // while the frame is visible             while (isVisible()) {                 // get the position of mouse                 Point p = MouseInfo.getPointerInfo().getLocation(); Â
                // create a screen capture around the mouse pointer                 i = r.createScreenCapture( new Rectangle(( int )p.getX() - 30 ,                                                         ( int )p.getY() - 30 , 150 , 150 )); Â
                // repaint the container                 repaint();             }             // exit the program             System.exit( 0 );         }         catch (Exception e) {             System.err.println(e.getMessage());         }     } Â
    // paint function     public void paint(Graphics g)     { Â
        // draw the image         g.drawImage(i, 0 , 0 , 300 , 300 , this );     } } |
Output :Â
Â
Note: the following program might not run in an online compiler please use an offline IDE.Please use a latest version of java
Â