package com.ddpie;
import java.awt.awtexception;
import java.awt.graphicsdevice;
import java.awt.graphicsenvironment;
import java.awt.robot;
import java.awt.event.mouseevent;
import java.awt.event.mousemotionlistener;
import javax.swing.jframe;
public class testcursorframe {
public static void main(string[] args) throws awtexception{
final int width = 300;
final int hight = 200;
final jframe frame = new jframe();
frame.setsize(width, hight);
frame.setlocation(200, 200);
frame.setundecorated(true);
frame.setdefaultcloseoperation(jframe.exit_on_close);
frame.setvisible(true);
graphicsenvironment env = graphicsenvironment.getlocalgraphicsenvironment();
graphicsdevice screen = env.getdefaultscreendevice();
final robot robot = new robot(screen);
frame.addmousemotionlistener(new mousemotionlistener(){
public void mousedragged(mouseevent e) {
resetcursorpos(e);
}
public void mousemoved(mouseevent e) {
resetcursorpos(e);
}
private void resetcursorpos(mouseevent e){
int curx = e.getx()+frame.getx();
int cury = e.gety()+frame.gety();
int frameleft = frame.getx()+20;
int frameright = frame.getx()+frame.getwidth()-20;
int frameup = frame.gety()+20;
int framedown = frame.gety()+frame.getheight()-20;
int x = curx;
int y = cury;
if(curx<frameleft){
x = frameleft;
}
if(curx>frameright){
x = frameright;
}
if(cury<frameup){
y = frameup;
}
if(cury>framedown){
y = framedown;
}
if(x!=curx || y!=cury)
robot.mousemove(x, y);
}
});
}
}