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