マウスがアプリケーションに入ったタイミングをチェックするマウス モーション リスナーがあることは知っています。ユーザーがアプリケーションに入ったときにマウスを画面の中央に移動させる方法はありますか? この例は、ゲーム 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();
}