0

我知道有一个鼠标运动侦听器可以检查鼠标何时进入应用程序。当用户进入应用程序时,有没有办法让鼠标移动到屏幕的中心?这方面的一个例子来自游戏 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();
 }
4

1 回答 1

2

你可以使用java.awt.Robot类。我不相信在用户与屏幕交互时移动鼠标是一个很好的 UX 选择,但该课程应该让你开始了解你需要的东西。

final Robot robot = new Robot();
robot.mouseMove(100, 100);

机器人 - Javadoc

于 2012-04-11T22:53:11.760 回答