У меня есть glcanvas внутри jpanel с BorderLayout.Размер холста должен зависеть от размера окна.Начальный размер задается с помощью
glCanvas.setSize(640, 480);
И он добавляется к панели следующим образом
jPanel3DModel.add(Model3DCanvas.getInstance().getCanvas());
jPanelRight.add(jPanel3DModel, BorderLayout.NORTH);
Однако размер холста фиксирован, и все панели других компонентов вмоя рамка просто изменила размеры.