As I see it, you have two problems:
1. You glOrtho call has a way too small z axis range. You specify [-1, 1], you might want to try with [-200, 200] or something to make sure the rotated quad stays within the frustum.
2. Rotating an already translated quad is not going to work. What I mean i that you're already moving the quad by yourself to 100, 100 _before_ the rotation happens. Rotations is always relative to 0, 0 so that's why your quad disappear. Now, to fix it, you need to draw the quad like this:
GL.glBegin(GL.GL_QUADS);
GL.glTexCoord2f(0.0f, 0.0f);
GL.glVertex3f(-size/2, -size/2, 0.0f);
GL.glTexCoord2f(0.0f, 1.0f);
GL.glVertex3f(-size/2, size/2, 0.0f);
GL.glTexCoord2f(1.0f, 1.0f);
GL.glVertex3f(size/2, size/2, 0.0f);
GL.glTexCoord2f(1.0f, 0.0f);
GL.glVertex3f(size/2, -size/2, 0.0f);
GL.glEnd();
and do the transformation like this:
GL.glMatrixMode(GL.GL_MODELVIEW);
GL.glLoadIdentity();
GL.glTranslatef(x, y, 0.0f);
GL.glRotatef(angle, 0.0f, 1.0f, 0.0f);
That is, let OpenGL do both the translation and rotation.
- elias