我知道有一个鼠标动作监听器可以检查鼠标进入应用程序的时间。当用户进入应用程序时,有没有办法让鼠标移动到屏幕的中心?这方面的一个例子来自Minecraft游戏。一旦用户将鼠标指针悬停在应用程序内部,鼠标点就位于屏幕中央,任何鼠标移动都会决定您正在查看的内容。我试图实现这一点,但我只想知道如何让鼠标坐标改变到屏幕的原点,而不会让鼠标指针本身从物理人体动作转到屏幕。
public static void main(String[] args) {
Jogl3DApp display = new Jogl3DApp();
// make display listen for mouse events
display.addMouseListener(display);
// make display listen for keyboard events
display.addKeyListener(display);
// Uncomment the following line to create a timer object and start it
// generating events, one every 30 milliseconds
new Timer(10, display).start();
// make display listen for the OpenGL graphics events
display.addGLEventListener(display);
// create a GUI window
JFrame window = new JFrame("Jogl Application");
// make window contain the display object
window.setContentPane(display);
window.setLocation(100, 100);
window.setVisible(true);
// A JFrame object's size includes the window decorations, like
// the title bar and borders. So if you want a 500x500 drawing space,
// you must set the window size a little bit bigger than that. Insets
// gives
// you the size of the decorations, so you make the window of size
// 500x500
// plus the size of the decorations.
Insets insets = window.getInsets();
window.setSize(500 + insets.right + insets.left, 500 + insets.top
+ insets.bottom);
// kills thread (in particular the timer event thread) when window is
// closed
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void display(GLAutoDrawable drawable) {
// get the OpenGL context object
GL gl = drawable.getGL();
GLU glu = new GLU();
GLUT glut = new GLUT();
// clear the window
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
// replace what follows with your own drawing code
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}
答案 0 :(得分:2)
您可以使用java.awt.Robot
课程。我不相信在用户与屏幕交互时移动鼠标是一个很好的用户体验选择,但该课程应该让你开始使用你需要的东西。
final Robot robot = new Robot();
robot.mouseMove(100, 100);