El codigo:
Código Java:
Ver original
package pruebas; import java.awt.Canvas; import java.awt.Component; import java.awt.Graphics; import java.awt.MouseInfo; import java.awt.Point; import java.awt.PointerInfo; import javax.swing.*; public class Mouse1 { Frame1 frame1 = new Frame1(); while(true){ frame1.canvas1.leer_mouse(); frame1.canvas1.repaint(); } } } @SuppressWarnings("serial") Canvas1 canvas1 = new Canvas1(); public Frame1(){ a.setBounds(100, 100, 250, 200); a.setVisible(true); a.setResizable(false); a.add(canvas1); } } @SuppressWarnings("serial") private int x, y; //super.paint(g); g.drawString("Hola mundo", 0, 0); g.drawString("X:" + x , 10, 20); g.drawString("Y:" + y , 10, 60); g.drawOval(x-100, y-100, 12, 12); } public void leer_mouse(){ Point coord_mouse; PointerInfo info_mouse; info_mouse = MouseInfo.getPointerInfo(); coord_mouse = info_mouse.getLocation(); x = coord_mouse.x; y = coord_mouse.y; } }
Mi problema está en que el circulo se dibuja en el (0,0) del monitor y no en la ventanita, osea, en el JFrame. Cómo podría hacer para que siga al mouse correctamente?
Acá dejo una imagen descriptiva del problema, no se ve el raton, pero ahí está en el punto (0,0) de la ventana y como ven, el circulo se dibuja defasado