I would suggest looking into both and try making simple stuff with both. I use
LWJGL myself and also find the input handling very useful. Most calls from OpenGL are almost exactly the same, with the except that that Java versions are static methods in classes. Example drawing code for simple openGL and the LWJGL equivalent for drawing a simple triangle strip:
//way earlierimport org.lwjgl.opengl.GL11; //LWJGL version GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID); GL11.glBegin(GL11.GL_TRIANGLE_STRIP); GL11.glTexCoord2f(0.f, 0.f); GL11.glVertex2f(x, y); GL11.glTexCoord2f(0.f, 1.f); GL11.glVertex2f(x, y + height); GL11.glTexCoord2f(1.f, 0.f); GL11.glVertex2f(x + width, y); GL11.glTexCoord2f(1.f, 1.f); GL11.glVertex2f(x + width, y + height); GL11.glEnd();
//Cpp version glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, textureID); glBegin(GL_TRIANGLE_STRIP); glTexCoord2f(0.f, 0.f); glVertex2f(x, y); glTexCoord2f(0.f, 1.f); glVertex2f(x, y + height); glTexCoord2f(1.f, 0.f); glVertex2f(x + width, y); glTexCoord2f(1.f, 1.f); glVertex2f(x + width, y + height); glEnd();
Keyboard events in LWJGL also don't work on an event queue, but rather can be polled directly. Example, no MouseListeners or anything, but rather anything can check a key simply like this (more complex ways are also available):
// returns true if RETURN (enter) is pressed// can be put anywhere in your code (e.g. in update method for game objects)Keyboard.isKeyDown(Keyboard.KEY_RETURN);
Keep in mind though, that a lot of which library is better is to look into them yourself. Some things easy in one, will be a pain in the other (e.g. entering names for high scores in LWJGL for my asteroids clone was annoying because i had to do MUCH more work since there was no KeyListener's keyPressed(KeyEvent...) method, but I had to manually check keys. But simply checking for key presses is MUCH easier in LWJGL).