Read the tutorials and wiki. There are a few things wrong:
- You call Display.update at the beginning of your loop, and then again during render(). You should only call this once at the end of your loop (before sync), and probably not inside your render() method. This is likely the cause of the flickering.
- You aren't using proper texcoords. See
here.
- You are loading from a file, which won't work if you try packaging your resources into a JAR. You should be using MyGame.class.getResource().
Regarding triangles; true that the GPU will prefer triangles (since that's what it will be in the end), but that's the least of your worries. Right now you're using old-school immediate mode and fixed function; ideally you should be learning more modern OpenGL through shaders and VBOs. Understandably though, the "hello world" quad is a good starting point for newbies.
If you find these topics difficult to grasp, then you would be better off using a library like LibGDX which will cover the lower-level stuff for you.