Applet resize problem

Hi, i am new to java and game development.

I just started creating my first java applet using JOGL library.
After few tutorials i managed to draw a triangle, but have problem with GLCanvas and the reshape method.


        public class CMain extends Applet implements GLEventListener
....

	public void init()
	{
		glu = new GLU();
		canvas = new GLCanvas(new GLCapabilities(GLProfile.getDefault()));
		this.add(canvas);
		
		canvas.addGLEventListener(this);
		canvas.setPreferredSize(this.getSize());
		
		final FPSAnimator animator = new FPSAnimator(canvas, 60);
		animator.start();
	}

....

	public void reshape(GLAutoDrawable glDrawable, int x, int y, int w, int h) 
	{
	      GL2 gl = glDrawable.getGL().getGL2();
	      
	      h = (h == 0) ? 1 : h;  // Prevent divide by zero
	      float aspect = (float)w / h; // Compute aspect ratio
	      
	      // Set view port to cover full screen 
	      gl.glViewport(0, 0, w, h);
	      
	      // Set up the projection matrix - choose perspective view
	      gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);  
	      gl.glLoadIdentity();    // reset
	      glu.gluPerspective(45.0f, aspect, 0.1f, 100.0f);
	      
	      // Switch to the model-view transform
	      gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
	      gl.glLoadIdentity();    
	      
	      canvas.setPreferredSize(null);
	      canvas.setPreferredSize(this.getSize());  // <--- hmmm
	}

I’m using Eclipse and Java applet viewer, and when i resize window/applet
sometimes the Canvas size doesn’t update!! :persecutioncomplex:

Any suggestions?

Nobody knows where is problem?

Dont know if i have to resize canvas manually or is there some way to tell canvas to resize automatically,
i need to set some layout or??

I don’t know much about applets. I didn’t think you could re-size it. The problem may be in the repaint() method. How are you handling that in the applet?

fixed :slight_smile:

replaced canvas.setPreferedSize() with canvas.reshape().
eclipse doesn’t have javadoc for that method, it has 4 parameters so i guessed that would be x,y,width,and height.


canvas.reshape(0, 0, this.getWidth(), this.getHeight());